久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

用uboot調試裸機C語言

作者:佚名   來源:本站原創   點擊數:  更新時間:2010年12月18日   【字體:

  昨天用uboot1.4調試了一下基于s3c44b0的一個LED燈實驗,成功,紀錄下:

  最初的設想是想用uboot的loadb命令來調試自己移植的uboot,發現串口沒顯示,當時就暈了 就不想再動了,原因可想而知是各種各樣的,難~~~  但再想想是不是思路有問題,就打算寫個裸C來試下loadb命令。

整個程序就是實現個流水燈(也就只有三個LED),就叫做led.c吧,編譯成led.o,再用arm-elf-objcopy成led.bin,通過串口,用uboot命令loadb 0x0c008000 用超級終端傳送一下,(很快,一下而過)發現板子沒反應,(又暈了)只有找google了(還是推薦google,百度還是差點)發現還要鏈接,那就arm-elf-ld -Ttext 0x0c008000 -nostdinc -o led.elf led.o(不是很懂為什么要加-nostdinc 然道是為了幫ld省事,不要去找stdinc??)。再次loadb 發現板上的燈還是沒動靜()這可雜辦呢~~~

再次使出google大法,再看看自己的led.c~~~~~(時間很長

終于找到了一點有用的:“對于裸機C程序,入口函數應該放在文件最前面”

然道我的燈不動就是因為在entry()之前寫了一個delay()????

那就試著改一下吧,所有其他函數都寫在entry()之后,再次arm-elf-gcc arm-elf-as arm-elf-ld arm-elf-objcopy~~(各種難啊~~)最后loadb 0x0c00800~~~~~~~

終于是見到板上的LED如程序所寫一樣的動起來了~~(激動啊

    激動之后再想想,覺的所謂的裸C程序,入口函數應該在文件最前面 這一點甚是不懂啊,再次請教google大叔,哎,發現有關的太少了,看樣子是沒多少人研究這個了~~~

突然想到arm-elf-readelf這個東西,還是用用吧,打開led.elf看看,于是在arm-elf-readelf -a led.elf作用下,顯示了一大堆,當時就眼花了,怕了~~~

還是慢慢來吧,一步一步來,先arm-elf-readelf -h led.elf

還是能看懂的,非常簡單的幾個english word  再次arm-elf-readelf -s led.elf

感覺自己要的東西出現了~~~~

出現了類似表單的文本,不懂頭幾個單詞的意思()卻在下面發現了entry ~~

還在同一行看到了0c008000 應該是說在0x0c008000這個地方有一個entry 哈哈,這個我懂啊,所謂的程序入口函數嘛,我的程序就是要在0x0c008000處開始運行啊

于是我再改回我原來的led.c,把delay()放在entry()前面,再次arm-elf-readelf -s led.elf,發現

在0c00800 一行上對應的是 .gcc2_compiled  而entry這一行對應的地址卻是0c00802c

哎,這才總算在猜測+測試中發現所謂的裸C程序入口函數為什么要放在最前面了(只是猜測沒人告訴我why)裸C程序里的函數放置地址是按函數實現的地址來放置的 就是說在內存中函數的放置地址順序與在文件中的實現順序是對應的~~ 而非裸C程序,甚至只要加了個符號鏈接的話,在內存中的執行地址與程序文本中的實現地址是無關的~~

~~~由此牽扯出的一大堆問題怕是難以一下解決的了,哎  難~~~

   路漫漫其修遠兮~~~~~~~
 

關閉窗口

相關文章

主站蜘蛛池模板: 精品国产伦一区二区三区观看方式 | 91视频播放| 中文字幕日韩av | 男女羞羞视频免费看 | 日韩欧美在线播放 | 久久久99精品免费观看 | 久久久久久中文字幕 | 日韩欧美亚洲 | 91在线看视频 | 亚洲精品在线视频 | 夜夜摸夜夜操 | 国产一区二区三区在线 | 日韩成人精品一区二区三区 | 国内精品视频在线观看 | 国产在线一区观看 | 黑人巨大精品欧美黑白配亚洲 | 男人久久天堂 | 欧美在线视频网 | 日韩中文字幕免费在线观看 | 69热视频在线观看 | 久久精品久久久久久 | 色婷婷久久久久swag精品 | 婷婷久久网 | 91麻豆精品国产91久久久更新资源速度超快 | 特级黄一级播放 | 久久久精品网 | 精品欧美一区二区在线观看 | 欧美国产激情二区三区 | 欧美区精品| 在线中文视频 | 99r在线 | 日韩精品一区二区三区高清免费 | aⅴ色国产 欧美 | 欧美日韩精品久久久免费观看 | 国产精品看片 | 久久久久国产 | 久久久国产一区二区三区 | 99久久婷婷国产亚洲终合精品 | 亚洲毛片在线观看 | 中文字幕高清 | 亚洲精品二区 |