Re: Bootloader編譯問題
|
||||
---|---|---|---|---|
高級會員
|
謝謝Ryang~
我依你的建議,Bootloader使用原來的組合語言程式,Application使用C語言 已可以組譯在一起,並正常動作了,太感謝你了
發表於: 2020/7/15 10:31
|
|||
|
Re: Bootloader編譯問題
|
||||
---|---|---|---|---|
高級會員
|
謝謝Ryang回覆
Bootloader的一般用法我知道,只是我不要把Bootloader放在前面與影響中斷向量位址與設定, 我要規劃Bootloader在程式容量的後半部 當然這需要考慮到如何進入(例UART)與如何防止寫入錯誤變成磚的問題 上述的功能我已經用組合語言寫好了,已試驗成功,可正常執行 只是目前要改成C語言,遇到編譯Bootloader位址的問題 我知道可以用合併的方式來做,只是作法想單純一點,看可不可以一個project就處理掉 我知道可以用強制定位址 @0xnnnn來做,只是副程式很多,要定址比較麻煩 才來尋問各位有沒有不同的看法與方式
發表於: 2020/7/13 9:07
|
|||
|
Bootloader編譯問題
|
||||
---|---|---|---|---|
高級會員
|
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副程式要這樣子定義 而且要考慮每個副程式的大小
發表於: 2020/7/9 10:46
|
|||
|
Re: PC程式位址-位移問題
|
|
|||
---|---|---|---|---|
高級會員
|
發表於: 2018/12/19 19:00
|
|||
|