作者swh (路人甲)
看板LinuxDev
標題[問題] 請問一個在u boot上寫程式遇到的問題
時間Tue Feb 22 15:48:32 2011
請問一下各位版友:
我在u boot上開發程式,增加屬於自己的指令,類似tftp從tftp server下載檔案到
device,我想做md5的驗證,所以把lib_generic/md5.c拿進來用,建立好image上傳
到device上執行,這時發生了在開機時實行到board.c中
i2c_init (CFG_I2C_SPEED, CFG_I2C_SLAVE);機器就死當了,只要不把MD5.c build
進來就不會發生死當,我知道這問題不好敘述,請問一下各位版友有可能是什麼情形
要如何解決我看了system.map兩者的不同如下,看是否可以看出端倪,謝謝各位
1.有md5.c:
8108044c t init_func_i2c
8109b9dc T i2c_init
2.無md5.c
8108044c t init_func_i2c
8109acdc T i2c_init
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.124.205.73
1F:→ swh:我逐步加code的方式把md5.c的程式碼,慢慢搬進u-boot,發現中 02/22 16:27
2F:→ swh:間過程,我順利開機後輸入指令就會出現問題,有可能在建立IMAG 02/22 16:30
3F:→ swh:時,互相蓋到嗎?要怎樣驗證,或者有其它的想法呢? 02/22 16:31
4F:推 askacis:或許可以查一下map檔,看一下armboot_end這個值的位置 02/22 20:05
5F:推 askacis:是否真的是在最後面,uboot 將自己relocate到ram上時會用 02/22 20:12
6F:→ askacis:來當作結束的點;也可以反組譯start.s看一下armboot_end是 02/22 20:13
7F:→ swh:我有點不太懂,不過我會去確認看看 02/22 22:52
8F:→ swh:我朋友在同樣平台,在寫其他功能時也發生同樣的狀況,就是新的 02/22 22:53
9F:→ swh:u-boot在輸入指令時,發生全部判斷成無效指令,之前寫PIC單晶 02/22 22:55
10F:→ swh:片的經驗,程式碼有分page,沒有切換到對的page就會在jump時發 02/22 22:57
11F:→ swh:生錯誤,不知道u-boot有沒有類似的設定 02/22 22:58
12F:→ swh:我發現我的問題跟這個人是一樣的 02/23 00:28
14F:→ swh:.html,不過沒有人回他@@!!,難道這不是問題嗎? 02/23 00:30
15F:→ swh:我反組譯start.o沒有發現armboot_end類似的label 02/23 10:24
16F:推 shaopin:您沒有FPGA可以設置中斷點? 通常是data fetch abort了吧 02/23 12:34
17F:→ shaopin:sorry, 弄錯, 應該說是Debugger, ICE才對... 02/23 12:35
18F:→ swh:目前是沒有JTAG可用的@@!!,看來問題要先跳過了 02/23 16:34
19F:推 askacis:查了一下新版的的u-boot,armboot_end已經被改掉了,可以確 02/25 09:00
20F:推 askacis:認System.map裡 _end是不是最後一個,如果這個_end的値有 02/25 09:10
21F:→ askacis:不是在最後一個的話,有些TEXT段的東西不會被載入,則當跑到 02/25 09:11
22F:→ askacis:沒被relocate到RAM上的function時就會死當了... 02/25 09:12