• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   1 Anonymous Users






Re: 想請問bootloader跟使用者程式是不是會衝突呢?
#6
版主
版主


查看用戶資訊
使用Bootloader來Download應用程式應注意應用程式的執行位址:
1. 使用組合語言: 不管是使用 ORG 或 CODE 定執行程式的位址都需考慮Bootloader要到程式真正執行的位址與中斷位址示在哪裡,應用程式自然的就必須往下推。

2. 使用C18:要修改啟動模組c018i.c 的程式,將 RESET 向量位址移到 Bootloader 跳進來執行的位址,同時中斷位址也需轉移。

發表於: 2006/10/24 11:50
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問bootloader跟使用者程式是不是會衝突呢?
#5
初級會員
初級會員


查看用戶資訊
建議應該使用GOTO xxxx(LABLE)的用法吧
位址由組譯器去定義。
程式的架構有沒有BOOT自已應該很清楚,直接
定址一定會出問題滴...

發表於: 2006/10/23 20:18
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問bootloader跟使用者程式是不是會衝突呢?
#4
高級會員
高級會員


查看用戶資訊
金的吶~GOTO 果然是絕對定址
org 0x0000
goto 0x1a --> 0DEF,00F0

org 0x0002
goto 0x1a --> 0DEF,00F0

這樣子感覺起來....
要嘛..程式一開始就必須偏移...
不然bootloader程式就要針對某些指令做偏移的動作..
還是有其它的方式..++?

發表於: 2006/10/23 8:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問bootloader跟使用者程式是不是會衝突呢?
#3
新會員
新會員


查看用戶資訊
所以問題就是...
PIC類似GOTO跟bra之類的指令
到底是絕對定址還是相對定址呢?

我看PIC18F4520的DATA Sheet
第279跟288頁
指令說明

BRA 的動作是:
(PC)+2+2n-->PC 這樣看來是相對定址
可是...!!!

GOTO 的動作 卻是 k--->PC<20:1> 這樣應該是絕對定址

所以 到底是怎麼一回事呢?
懇請解答 謝謝!

發表於: 2006/10/22 15:15
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 想請問bootloader跟使用者程式是不是會衝突呢?
#2
高級會員
高級會員


查看用戶資訊
我也想了解一下..

我覺得是指令組譯出來的定址方式
goto 0x30 ... complier 出來後 0x30 如果是pc相對定址...
那goto 0x30...實際上是偏移pc 值 0x30的位址..
而不是跳到程式0x30的位址...

這樣如果程式是從0x200開始..
goto 0x30...實際上就是偏移到0x230的位址..
所以程式還是能執行...

如果bootloader程式..把沒有設定偏移的程式..
從0x200開始燒錄..應該也不會影響程式的執行

不知道我這樣想對不對??..



發表於: 2006/10/21 15:50
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


想請問bootloader跟使用者程式是不是會衝突呢?
#1
新會員
新會員


查看用戶資訊
想請問bootloader跟使用者程式是不是會衝突呢
<<觀念問題想請教..>>


假設現在有一個bootloader ,佔用0x000~0x200的程式記憶體

然後使用者的程式有一段是這樣的
.....
org 0x020
goto 0x030
....
如果用bootloader將程式燒進去PIC的話(以18F452為例)

這行 "goto 0x030" 指令在PIC的真正的程式記憶體位置應該會是0x220
(因為被bootloader偏移了)
可是他的指令"goto 0x030" ,會不會跑回去0x030呢
(這不就跑到Bootloader)裡面去了?

但是很多bootloader卻能夠正確跳到0x230繼續執行使用者程式

可是使用者當初Compile的時候並沒有設定偏移啊
指令也是原本的指令燒進去 PIC

到底為什麼還是能夠正常運作呢?
bootloader有做什麼設定嗎?
懇請解答...謝謝了!!




發表於: 2006/10/20 18:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------