2007年4月27日 星期五
如何在WINCE Build "Pubilc" folder
2.將路徑改為要Build的路徑。如下圖所示。
3.下指令 build -c。如下圖所示。
4.完成後,下指令sysgen -p common。如下圖所示。
5.結束後,再將Platform Builder→Build OS→Clean Before Building 勾選起來,再做一次 Build and Sysgen Current BSP。
2007年4月26日 星期四
在UltraEdit編輯環境下使用Hi-TechC
可以到http://www.htsoft.com下載它的demo板。
在MPLAB環境下可以直接使用Hi-Tech進行編譯。
但是在MPLAB環境下使用有很多的不便,比如不能進行中文注釋,關鍵字不能彩色顯示等。
一 般設計者都喜歡在Ultra Edit編輯環境下進行編寫和修改,在MPLAB環境下編譯模擬,要來回切換,非常的不方便。還有,因為MPLAB沒有感知功能,在Ultra Edit修改以後,MPLAB並不知曉,所以還要重新打開這個檔才行。如果在Ultra Edit環境下也能編譯就好了!
下列說明怎樣設置和使用。
第一步: 打開Ultra Edit編輯器,選擇功能表“Advanced”的“Tool Configuration”,點擊打開Tool Configuration Window,如圖1所示。
在“Command Line”透過“Browse”找到你安裝的PICC的路徑,如 C:\HT-PIC\bin\picc.exe, 空格,然後再輸入:“-16F877 -Zg –O –E %F”(不要輸入引號)。
簡單解釋一下:
-16F877是利用PIC16F877的資源,因為PIC16F877比較多,這樣就可以編譯其他的PIC系列的單晶片微控制器了;
-O –Zg都是代碼優化命令;
-E是產生錯誤檔的命令,有了這個命令當產生錯誤以後,我們點擊錯誤提示,游標就會停留在存在錯誤的語句行上,這樣就非常方便我們修改錯誤;
%F是編譯當前文件的命令。
當然我們也可以加其他的命令,請查閱有關Ultra Edit的Help。
第二步:在Working Directory輸入:“%P” (不要輸入引號)。
意思是把編譯生成的文件放到當前檔案的路徑下。如圖1所示。
第三步:在“Menu Item Name”輸入你取的名字,如輸入的是:“PICC”。如圖1所示。
第四步:為了看到輸出結果我們還要做下面的設置,在“Save Active File”前面的方框裡打勾;
在“Output to List Box” 前面的方框裡打勾;在“Capture Output” 前面的方框裡打勾。如圖1所示。
最後點擊“Insert”。設計好的情形如圖1所示。不要忘了還要點擊“OK”,不然前面的工作就白做了。
好了,你現在點擊Advanced功能表,就會在看到“PICC”選項了!
趕緊打開一個PIC的.C檔試試成果吧!點擊“Advanced”功能表下的PICC選項,編譯結果馬上出現在我們的面前!
效果如圖2所示,在.C檔所在的路徑下還生成了hex等檔案。
如果出現錯誤,在輸出視窗會有提示的。如果出現錯誤,在輸出視窗會有提示的。
點擊錯誤提示,提示符就會跳到出錯行。效果如圖3所示。
不過建議不要直接把hex檔下載到單晶片微控制器,應該用MPLAB編譯、模擬後,覺得沒有什麼問題再下載到單晶片微控制器進行測試。
圖1
圖2
圖3
參考出處:http://pdf.18ic.com/post_14_505_1.html
2007年4月23日 星期一
LED issue_661
USB cable插在661上充飽電時(LED亮綠燈),當按Power Key進suspend,LED會亮紅燈,這是因為進入suspend,GPIO會設為 output high。
請參閱\WINCE500\PLATFORM\MGPS\KERNEL\OAL\sleep.c
DWORD g_dwRomGpioConfig [][3] = {
{ 0xCFFFFFFF, 0x0FBFFFD0, 0xC
{ 0x
{ 0xFFF7FFFF, 0xFFF7FFFF, 0x00000000 },
{ 0xFFFFFFFF, 0xFE0FFBF0, 0xC
{ 0x7FFFFFFF, 0x7FFF1D
{ 0xFFDFFFFF, 0x
};
{ 0xCFFFFFFF, 0x0FBFFFD0, 0xC
{ 0x
{ 0xFFF7FFFF, 0xFFF7FFFF, 0x00000000 },
{ 0xFFFFFFFF, 0xFE0FFBF0, 0xC
{ 0x7FFFFFFF, 0x7FFF1D
{ 0xFFDFFFFF, 0x5277FFFF, 0xADA80200 },//p9 output low,p23 output low CHAR_DONE output high
};
陣子才會變綠燈 , 當初為了這一個 Bug 所以 battery driver 當初改成如果電壓在 4.17V 以下就把
CHAR_DONE 拉 HIGH 變紅燈 , 在 4.17V 以上就把他拉 LOW 變綠燈 , 但在 sleep時我們無法
掌控 CHAR_DONE , 這個 Bug 就會跑出來。
2007年4月19日 星期四
MPLAB IDE操作環境
建立Project時,路徑不可以有中文命名,因此要特別小心。
path:Project>Project Wizard
2) Setting Up Language Tools
選擇正確的assembler (MPASM assembler) 、linker for PIC MCU devices
path: Project>Set Language Tool Locations
Project> Select Language Toolsuite
3) Adding Files to the Project
- A source file has not yet been selected, so we will use an MPLAB IDE template file. The template files are simple files that can be used to start a project. They have the essential sections for any source file, and contain information that will help you write and organize your code.
- Next, add the second file for your project, the linker script. There is a linker script for each device. These files define the memory configuration and register names for the various parts.
4) Building the Project
path:Project>Build All
5)選擇build output window輸出訊息
patjProject>Build Options>Project
→MPASM Assembler tab
→Categories→Select "Output"
→Diagnostic level→Select "Errors only" or ...
6)Testing Code with the Simulator
要測試 code 時,軟體或是硬體需要去執行PIC MCU指令。
MPLAB IDE 提供三個debug tool。
Hardware tools有MPLAB ICE、MPLAB ICD 2,可以真正將 code在實際的device執行。
如果沒有device可使用,Software tool的 MPLAB SIM simulator 可以用來測試。
Path:Debugger>Select Tool
7) Processor Reset
會出現綠色箭頭show出程式開始的地方
path:Debugger>Reset>Processor Reset
2007年4月11日 星期三
MCU
也有人稱為單晶片微控制器(Single Chip Microcontroller),
它是將ROM、RAM、CPU、I/O集合在同一個晶片中,為不同的應用場合做不同組合控制。
在MCU開發方面,以架構而 言可分為兩大主流:RISC(Reduced Instruction Set Computer)與CISC(Complex Instruction Set Computer)。
RISC代表MCU的所有指令都是利用一些簡單的指令組成的,簡單的指令代表 MCU 的線路可以盡量做到最佳化,而提高執行速率,相對的使得一個指令所需的時間減到最短。
對於 RISC 來說,因為指令集的精簡,所以許多工作都必須組合簡單的指令,而針對較複雜組合的工作便需要由『編譯程式』(compiler) 來執行,而 CISC MCU因為硬體所提供的指令集較多,所以許多工作都能夠以一個或是數個指令來代替,compiler 的工作因而減少許多。
至於RISC 與 CISC 的取舍之間,似乎也是MCU硬體架構與軟體(Compiler) 的平衡之爭,應該沒有絕對優勢的一方,只能說因應不同的需求而有不同的產品
參考出處:http://www.eettaiwan.com/ART_8800076794_617717,876045.HTM.582b52dd
2007年4月9日 星期一
BattDrv_charging_661
狀態:希望當battery充電時,LED亮紅燈,飽電時,LED亮綠燈。
問題:系統Suspend時,就算是充飽電狀態,LED還是呈現紅燈。
解析:因為當Battery充電時,只要CHG_DONE或是CHG_STA其中一種狀態成立,Green LED就會導通(CHG_DONE和CHG_STA做OR後由CHG_FUL控制LED)。但當系統Suspend時,CPU呈現不動作狀態,此時的CHG_DONE的GPIO便不動作,整個Charg的動作會交給Charg IC來做。因為CHG_DONE是由軟體控制而CHG_STA則是隨著流過Charg IC的電流來決定,當流過的電流小到一個呈度(由電池曲線決定),則表示已充飽電了,但也因為如此,所以要等Charg IC充飽電則需要在過一段時間,LED才會亮起綠燈。