Re: PIC18F4520 flash write
|
||||
---|---|---|---|---|
初級會員
|
感謝各位的回覆
有進一步的問題在請教各位 Thanks!!
發表於: 2009/3/31 0:01
|
|||
|
Re: PIC18F4520 flash write
|
||||
---|---|---|---|---|
初級會員
|
Sorry 沒有說清楚
當開始erase all 0x0000~0x6FFF前 已經 先 disable interrupt and using polling mode來收rs-232的資料了 thanks
發表於: 2009/3/26 0:55
|
|||
|
Re: 關於USART的應用
|
||||
---|---|---|---|---|
初級會員
|
Hi all
自己回覆 自己找到解答 1. add code uwrite.c and uread.c 到project 2. 用#pragma code 訂定位址 Thanks
發表於: 2009/1/21 0:29
|
|||
|
Re: 關於WriteUSART
|
||||
---|---|---|---|---|
初級會員
|
Hi各位
我發現問題了 因為table write 把ReadUSART Code erase掉 所以 接下來就收不到任何data了 感謝各位的幫忙
發表於: 2009/1/20 23:50
|
|||
|
關於USART的應用
|
||||
---|---|---|---|---|
初級會員
|
Hi all:
自從解決上次的問題後 目前使用18F4520想做Bootloader 目前我可以使用自己的AP傳送data 到PIC端 但目前遭遇一些問題 我的flash layout 如下: 0x00 ------------------>0x6FFF|0x7000------>0x7FFF| |<---code area--------------->|<---Boot Loader---->| 目前已可將WriteUSART() 從code area 移到 Boot Loader 目前收送OK 當我嘗試將ReadUSART() 從code area 移到 Boot Loader Compiler OK 可以flash to PIC18F4520(透過ICD2)並放於bootloader區(0x7C00) 此時嘗試用AP傳data到PIC18F的UART, 但發現PIC端根本收不到(我確認AP端有發送資料, 用PORT Monitor軟體觀察) 請問我有什沒注意到嗎??? PS. ReadUSART() and WriteUSART() 從光碟片取得\mcc18\src\pmc_common\USART\Uread.c and Uwrite.c 感覺就欠臨門一腳了 請各位高手提供一下意見 萬分感謝 Jackie Lee
發表於: 2009/1/20 23:47
|
|||
|
Re: 關於WriteUSART
|
||||
---|---|---|---|---|
初級會員
|
Hi 版主:
It's OK!謝謝. 現在遇到另外一個問題 我使用tableWrite 從0x00~0x6FFF 前面一直OK 但是 再寫到位址0x5E00時就發生PIC不回應命令的狀況 觀察 0x5E00這邊的code 主要是做Timer的控制 ============================ TMR1H=0; // Clear out timer registers TMR1L=0; PIR1bits.TMR1IF=0; if(config&0x80) // Enable interrupts if selected PIE1bits.TMR1IE=1; else PIE1bits.TMR1IE=0; =============================== 我已經把不能 flash的code 搬往0x07000後 所以 應該不會有code over write 的狀況 請問,有任何建議嗎? 我是懷疑是不是CONFIG BIT是PROTECT MODE 但是 看起來又不像,列於其下 =============================== const rom unsigned char CONFIG1L=0xff ; / const rom unsigned char CONFIG1H=0b00100010 ; const rom unsigned char CONFIG2L=0b00000001 ; const rom unsigned char CONFIG2H=0b00000000 ; const rom unsigned char CONFIG3L=0xff ; / const rom unsigned char CONFIG3H=0b10000000 ; const rom unsigned char CONFIG4L=0b10000001 ; const rom unsigned char CONFIG4H=0xff ; / const rom unsigned char CONFIG5L=0b00001111 ; const rom unsigned char CONFIG5H=0b11000000 ; const rom unsigned char CONFIG6L=0b00001111 ; const rom unsigned char CONFIG6H=0b11100000 ; const rom unsigned char CONFIG7L=0b00001111 ; const rom unsigned char CONFIG7H=0b01000000 ; =================================== 有任何建議嗎?? 感謝 您的幫忙
發表於: 2009/1/20 2:09
|
|||
|
關於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
|
|||
|
Re: C018 vs ROM
|
||||
---|---|---|---|---|
初級會員
|
THanks
I will keep looking on it.
發表於: 2009/1/5 21:30
|
|||
|
Re: C018 vs ROM
|
||||
---|---|---|---|---|
初級會員
|
Hi 版主
問題已知, 應該是 Compiler問題 我將code拿到別台用一樣的環境就好了(後來自己PC重新安裝IDE&MCC18) 現有另一問題 就是我嘗試要自己寫Bootloader 現在擔心啟動程序 _startup_scn 會在OverWrite Flash時 被清掉 嘗試用pragma 定義 但是我發現 如果我強制定址==>>放到我自定保護區 Compiler OK(Code也放到0x6000)但是Code會有問題(無法正常啟動) Fail code ========================== #pragma code _startup_scn=0x006000 void _startup (void) { /*省略*/ } ========================== 但是如果不定址 #pragma code _startup_scn 就是OK的 請問 有何方法呢
發表於: 2009/1/1 5:16
|
|||
|