:::

論壇索引


Board index » All Posts (hsien0212)




Re: Bootloader編譯問題
#1
高級會員
高級會員


謝謝Ryang~
我依你的建議,Bootloader使用原來的組合語言程式,Application使用C語言
已可以組譯在一起,並正常動作了,太感謝你了

發表於: 7/15 10:31
頂部


Re: Bootloader編譯問題
#2
高級會員
高級會員


謝謝Ryang提供的資訊
如你所說,將Bootloader與App分開,是比較單純的~
我現在的想法是
Bootloader是一個專案(組合語言)
Application是另一個專案(c語言)
然後在Application專案中編譯前使用"loadabler"-->"Add Loadable Project" 加入Bootloader專案
再進行編譯,這樣子想法對嗎?

發表於: 7/13 10:52
頂部


Re: Bootloader編譯問題
#3
高級會員
高級會員


謝謝Ryang回覆
Bootloader的一般用法我知道,只是我不要把Bootloader放在前面與影響中斷向量位址與設定,
我要規劃Bootloader在程式容量的後半部

當然這需要考慮到如何進入(例UART)與如何防止寫入錯誤變成磚的問題
上述的功能我已經用組合語言寫好了,已試驗成功,可正常執行
只是目前要改成C語言,遇到編譯Bootloader位址的問題

我知道可以用合併的方式來做,只是作法想單純一點,看可不可以一個project就處理掉
我知道可以用強制定位址 @0xnnnn來做,只是副程式很多,要定址比較麻煩
才來尋問各位有沒有不同的看法與方式

發表於: 7/13 9:07
頂部


Bootloader編譯問題
#4
高級會員
高級會員


bootlader的作法,撰寫"bootloader程式"和"主程式",然後合併在一起
我不想透過合併hex方式來完成程式

個人的想法,在程式中
void main(void) __at(0x0020)
void A_sub(void)
void B_sub(void)

void bootloader(void) __at(0xF000)
void boot_read(void)
void boot_write(void)

在編譯後A_sub、B_sub可能跑到0xF000之後
或boot_read、boot_write跑到0x0020之後

有什麼方式可以將boot_read、boot_write編譯在0xF000
還是一定要宣告成
void boot_read(void) __at(0xF050)
void boot_write(void) __at(0xF100)
如果是這樣子的話就很麻煩了
因為我有很多的boot副程式要這樣子定義
而且要考慮每個副程式的大小

發表於: 7/9 10:46
頂部


Re: PC程式位址-位移問題
高級會員
高級會員



發表於: 2018/12/19 19:00
頂部



(1) 2 3 4 ... 14 »



:::

Microchip連結

http://elearning.microchip.com.tw/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

課程 - 台北教育訓練中心
課程 - 新竹教育訓練中心
課程 - 高雄教育訓練中心
教育訓練中心介紹
購買 - 實驗工具
臺灣實驗板介紹與資源