Re: PIC18F4550_PICDEM_FS_USB 修改中斷向量卻得編譯錯誤
|
||||
---|---|---|---|---|
中級會員
|
謝謝版主
發表於: 2009/8/24 9:46
|
|||
Programming is fun
|
||||
|
Re: PIC18F4550_PICDEM_FS_USB 修改中斷向量卻得編譯錯誤
|
||||
---|---|---|---|---|
中級會員
|
猜了一下, 把reset vector那段拿掉, 再試. 結果可用. 應該是0x0 和 0x800那段程式碼無法共同裝在0x6的長度空間中.
謝謝版主.
發表於: 2009/8/18 17:13
|
|||
Programming is fun
|
||||
|
Re: PIC18F4550_PICDEM_FS_USB 修改中斷向量卻得編譯錯誤
|
||||
---|---|---|---|---|
中級會員
|
extern void _startup (void); // See c018i.c in your C18 compiler dir
#pragma code _RESET_INTERRUPT_VECTOR = 0x000800 void _reset (void) { _asm goto _startup _endasm } #pragma code #pragma code _HIGH_INTERRUPT_VECTOR = 0x000808 void _high_ISR (void) { ; } #pragma code _LOW_INTERRUPT_VECTOR = 0x000818 void _low_ISR (void) { ; } #pragma code 以上是PICDEM FSUSB的程式片段, 直接Copy & Paste. 我硬碟上的程式只有在中斷向量的值減去0x800而已, 其他程式碼全部沒改. 想測試不要boot mode的情況, 程式是否仍然有效. 結果就是以上的Error. 小弟的程式都是由0x0開始, 沒用過Boot mode. 看到0x800->0x0, 0x808->0x008, 0x818->0x018竟然會有編譯錯誤, 也不知如何是好. 我猜, 18F4550應該和18F4620都一樣可以從0x0開始吧. 在此請先進指導一下.
發表於: 2009/8/18 16:57
|
|||
Programming is fun
|
||||
|
PIC18F4550_PICDEM_FS_USB 修改中斷向量卻得編譯錯誤
|
||||
---|---|---|---|---|
中級會員
|
我將 PICDEM FSUSB 內附的程式中main.c起始和中斷向量, 由原先的0x800改為0x0, 0x808->0x008, 0x818->0x018, 編譯結果得到:
Error - section '_entry_scn' can not fit the absolute section. Section '_entry_scn' start=0x00000000, length=0x00000006 Errors : 1 看起來是C18在 _startup (void) 的起始位置的安排. 查過 C:\mcc18\src\traditional\startup 內的三個 c018*.c, 都有如下定義. #define RND 6 (1)請問版主, 如何解決此一問題? (2)是否這個length=0x00000006指的是就是RND=6? (3)改了RND的值, 會有何影響? 謝謝 另附 Linker 片段, FILES c018i.o FILES clib.lib FILES p18f4550.lib //CODEPAGE NAME=boot START=0x0 END=0x7FF PROTECTED //CODEPAGE NAME=vectors START=0x800 END=0x829 PROTECTED //CODEPAGE NAME=page START=0x82A END=0x7FFF CODEPAGE NAME=page START=0x0 END=0x7FFF CODEPAGE NAME=idlocs START=0x200000 END=0x200007 PROTECTED CODEPAGE NAME=config START=0x300000 END=0x30000D PROTECTED CODEPAGE NAME=devid START=0x3FFFFE END=0x3FFFFF PROTECTED CODEPAGE NAME=eedata START=0xF00000 END=0xF000FF PROTECTED
發表於: 2009/8/18 12:18
Edited by ECP1 on 2009年08月18日 15:26:38
|
|||
|
Re: PIC18F4550 -- PC端USB程式
|
||||
---|---|---|---|---|
中級會員
|
會不會是程式的路徑問題? 我在這裡曾經兜了一圈才解套.
發表於: 2009/8/18 11:21
|
|||
Programming is fun
|
||||
|
Re: mpusbapi.dll 有支援到Vista嗎?
|
||||
---|---|---|---|---|
中級會員
|
謝謝NFeng!!!
發表於: 2009/8/12 11:15
|
|||
|
mpusbapi.dll 有支援到Vista嗎?
|
||||
---|---|---|---|---|
中級會員
|
最近做pic18f4550的專案, 發現Microchip的mpusbapi.dll只支援到Windows XP. 目前NB的OS大都是Vista的, 不知Microchip有更新的版本嗎?
發表於: 2009/8/11 17:12
|
|||
|
Re: RS232問題
|
||||
---|---|---|---|---|
中級會員
|
我個人的習慣是, TX寫在一般副程式中, RX放在中斷ISR, 資料進來時放到BUFFER, ON旗標. 收到一個位元組就迅速脫離中斷回主程式, 免得把中斷抓著不放, 造成不平衡. 出了中斷再到主程式檢查旗標, 看要做甚麼事. 時間的中斷會產生旗標, 在主程式一併簡查. 如果時間中斷很重要, 在中斷就多檢查TIMER FLAG一次. 以上供參考.
發表於: 2009/8/4 11:11
|
|||
|
Re: 寫C語言的RD如何應付老闆?
|
||||
---|---|---|---|---|
中級會員
|
工程師的通病在於專研(鑽入)技術,不知市場的走向.老闆則很容易被新技術帶來新市場這樣的話題所煽動,跟著別人的步閥前進.在公司內的員工則整天跟著主管忙東忙西,沒啥方向,一天班下來只知很累.
我以前做行銷企劃十來年,責任就是在一池清水中攪亂流向,讓相干人等捲入我們希望的情境中.多年經驗發現,台灣廠商很喜歡跟進,不太願意做一點自有技術的開發.與日本有名的國際大公司往來的經驗,發現他們在市場和技術之間整合的層度,讓我暗自緊張.來台談判的人員,不只有方向感,也有非常清楚的目的,通常都能夠在訪台廠商中,有所收穫而歸. 這些經驗讓我增加學習更基礎的知識,以便於適應變動中的市場.改行研發後,接觸了一些小型企業,發現能夠存活的老闆,在市場和自有技術的堅持,讓他們比較能夠在波動中的市場生存.新鮮人如果能夠了解市場競爭壓力對產品規格的影響,就比較知道要用那一種技術因應了.這就是市場與技術的整合程度,愈緊密的人活的愈好.豐田和通用汽車之間的對比,就是很好的例子.年輕人不妨以豐田為師,以通用為鏡.至於用組語還是C,應該是兩個都會的人發展機會比較多.
發表於: 2008/12/5 11:01
Edited by ECP1 on 2008年12月05日 11:17:40
|
|||
|