|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
分散加載的問題 |
| 作者:azurecch 欄目:ARM技術 |
我的程序有三個段,第一個段是向量表,第一條語句是跳轉到第二個段的開始。然后再從第二個段跳轉到第三個段。 第一個段: ResetInit B UserEntry 第二個段:(就一句跳轉的指令) UserEntry B User_Start 第三個段: User_Start BL InitStack ;初始化堆棧 BL TargetResetInit ;目標板基本初始化 B __main ;跳轉到c語言入口 分散加載文件: 第一個段: ROM_Startup 0x00000000 { Boot +0 { Startup.o (vectors, +First) } } 第二個段: ROM_UserEnter 0x00001000 { UserEnter +0 { UserEnter.o (User, +First) } } 第三個段: ROM_UserP 0x00002000 { User_Main +0 { userstart.o (UserMain, +First) * (+RO) } IRAM 0x40000000 { * (+RW,+ZI) } HEAP +0 UNINIT { heap.o (+ZI) } STACKS 0x40004000 UNINIT { stack.o (+ZI) } } 第一次將完工程后,是OK的,但我把分散加載第三個段的起始地址改為0xa000,軟件仿真時地址是沒錯的,可硬件仿真時 編譯后的 第二個段 的 B User_Start ,并沒有跳轉到 0xa000 ,還是保持原來的0x2000的地址。此后把第三個段的起始地址改為其它值,軟件仿真都可以,硬件仿真不可以 我使用的是 ads1.2+easyjtag+LPC2134 請各位大蝦幫忙看看 |
| 2樓: | >>參與討論 |
| 作者: azurecch 于 2006/8/3 16:30:00 發(fā)布:
救命啊,沒人理啊 救命啊,沒人理啊 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |