修改了bootloader裝載的方式

2022-08-31 14:06:19 字數 1078 閱讀 6748

2006/7/21 23:36:05

目前是直接讀取elf格式的cfe,然後根據elf的內容把**和資料寫到rom裡面,實際上是實現了乙個elf可執行檔案loader,我覺得這種方式 不太符合一般嵌入式開發人員的思維習慣,我決定在初始化rom的時候,把cfe的binary檔案直接拷貝到rom裡面,這樣就和一般的開發板很相似了.

剛開始這樣做的時候遇到了一點麻煩,發現cfe啟動不了了,用remote gdb跟了一下,發現在env_envvars的值是0,所以在env_findenv裡面跑飛了,但是實際上env_envvars是初始化了的

queue_t env_envvars = ;

而且以前通過elf的形式裝載是沒有問題的,於是馬上就猜想到可能是資料段裝載的問題,用mips-linux-objdump檢視

cfe: file format elf32-tradbigmips

sections:

idx name size vma lma file off algn

0 .text 00037ba5 9fc00000 bfc00000 00001000 2**4

contents, alloc, load, readonly, code

1 .data 000015f0 81f00000 bfc37bb0 00039000 2**3

contents, alloc, load, data

可以看到資料段和**段的vma,lma的偏移不同,利馬就想到可能是linker script的問題,通過檢視makefile 和cfe/arch/mips/common/src/cfe_ldscript.template,把cfg_bootram設定成1,問題解決

sections:

idx name size vma lma file off algn

0 .text 00037ba5 9fc00000 9fc00000 00001000 2**4

contents, alloc, load, readonly, code

1 .data 000015f0 9fc37ba8 9fc37ba8 00038ba8 2**3

contents, alloc, load, data

objc sendMsg函式原型修改了

公升級mac系統到10.15.1之後,發現有一處 編譯不過。發現是使用了objc sendmsg,但是在2019.10左右,mac os x系統中把這個方法原型修改了。原本是帶引數的,現在直接改為void objc sendmsg void 了。但是,仍然可以傳引數。具體參考 objc msgsen...

django 0 95修改了Auth模組

就是在session裡面加入了乙個新的key backend session key request.session backend session key user.backend 以前的版本,登入時,簡單修改session就可以 request.session session key user....

GitLab遇到ssh修改了預設埠解決方法

gitlab用ssh免金鑰認證確實很好用,只是配置的時候發現修改了ssh預設埠 22 則不可達,不少小夥伴都遇到了這個問題。經過一番思考,覺得需要修改服務端配置,這裡把具體寫個部落格,讓大家少點坑。修改步驟 1 修改ssh埠 此步驟略過 port 埠 2 修改 etc gitlab gitlab.r...