Re: 關於WriteUSART
|
||||
---|---|---|---|---|
版主
|
PIC18 的 Bootloader 要不要參考一下 AN851 Application Note :
http://www.microchip.com/stellent/idc ... eId=1824&appnote=en012031 還有 C18 v2.40 以後的版本在 Configuration Setting 上有很大的改變,請參考一下 C18 目錄下的說明檔:..\MCC18\doc\hlpPIC18ConfigSet.html 參考範例如下:
;*******************************************************************************
發表於: 2009/1/21 14:17
|
|||
|
Re: 關於WriteUSART
|
||||
---|---|---|---|---|
初級會員
|
Hi各位
我發現問題了 因為table write 把ReadUSART Code erase掉 所以 接下來就收不到任何data了 感謝各位的幫忙
發表於: 2009/1/20 23:50
|
|||
|
Re: 關於WriteUSART
|
||||
---|---|---|---|---|
版主
|
#progma code 的正確語法為 :
#pragma code [section-name [=address]] section-name可以在連結描述檔中加以指定該段程式 編譯後的執行位址 (18c452.lkr) 也可以直接指定該段程式的執行位址 #pragma code My_Code_On = 0x1000 所以在指定位址前要加入一個節區名稱,而這節區名稱不要重複。 例: #pragma code abc=0x7000
發表於: 2009/1/19 9:39
|
|||
|
關於WriteUSART
|
||||
---|---|---|---|---|
初級會員
|
版主您好
最近在做Boot loader tableflash練習 遇到一個問題請指教 在做tablewrite時data 是從USART收的 不過因為在write flash的過程中 會overwrite WriteUSART的code,導致program 不預期中斷 試過 將 C:\mcc18\src\pmc_common\USART\uwrite.c 並強制設定 位址 #pragma code 0x7000 void WriteUSART(char data) { if(TXSTAbits.TX9) // 9-bit mode? { TXSTAbits.TX9D = 0; // Set the TX9D bit according to the if(USART_Status.TX_NINE) // USART Tx 9th bit in status reg TXSTAbits.TX9D = 1; } TXREG = data; // Write the data byte to the USART } #pragma code add 到pic's project 但是位置並無法如我想要的 有什麼方法可以處裡嗎??是不是compiler 還是去抓舊的呢?? 可以像C018i.c的作法 將linker 檔中的obj path mark自己新增asource code 到project嗎?? 請幫忙!! Thanks
發表於: 2009/1/19 1:22
|
|||
|