|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
這里立一個擂臺,為你解答ADS的問題. |
| 作者:jekete 欄目:ARM技術(shù) |
本人為大家解答ADS的問題,有問題可以提. ?????????????????????????????????? |
| 2樓: | >>參與討論 |
| 作者: bairg521 于 2006/10/25 13:33:00 發(fā)布:
太好了,好人啊,幫我解答一個問題吧,感激不盡 我在option.s定義了:_ISR_STARTADDRESS EQU 0xc7fff00 在44b0x.h中定義了: #define pISR_EINT0 (*(unsigned *)(_ISR_STARTADDRESS+0x84)) 程序中用到:pISR_EINT0=(unsigned)Eint0lsr; Eint0lsr()是我的中斷服務(wù)程序,變異時報錯 Error:C2456E:undeclared NAME,iventing 'extern int _ISR_STARTADDRESS' 而且只要用了pISR_EINT0一類的變量都會出現(xiàn)這個錯誤 能幫我解釋一下這是什么錯誤嗎?感激不盡啊!! |
|
| 3樓: | >>參與討論 |
| 作者: weilan920 于 2006/10/27 12:43:00 發(fā)布:
求助,ADS編程問題 剛開始學(xué)習(xí)ADS,不知道為什么我敲進(jìn)去的程序編譯的時候總是出現(xiàn):“UNKNOWN opcode”錯誤提示,請問是什么原因? |
|
| 4樓: | >>參與討論 |
| 作者: jekete 于 2006/11/1 16:51:00 發(fā)布:
關(guān)于“UNKNOWN opcode”錯誤 請你付上你的代碼,有可能是代碼或環(huán)境錯誤。 |
|
| 5樓: | >>參與討論 |
| 作者: centimetre 于 2006/11/2 7:29:00 發(fā)布:
ee 1,c頭文件里面不能識別匯編里面的宏定義,需要在c頭文件里面再定義一邊 2,匯編指令有錯,或者格式錯誤,例如匯編指令前面沒有空格 |
|
| 6樓: | >>參與討論 |
| 作者: ketp 于 2006/11/2 8:56:00 發(fā)布:
在進(jìn)入main之前編譯器自動生成什么? 好象是自動生成了RW數(shù)據(jù)搬運代碼,但我看到的好多啟動代碼都自己搬運RW數(shù)據(jù)? |
|
| 7樓: | >>參與討論 |
| 作者: centimetre 于 2006/11/2 9:39:00 發(fā)布:
自己搬或者系統(tǒng)自動搬都可以 |
|
| 8樓: | >>參與討論 |
| 作者: jackwu1780 于 2006/11/2 10:55:00 發(fā)布:
先謝謝樓主,再問個問題 在ADS里面,函數(shù)中的變量,包括全局的變量和局部的變量,是怎么樣分配實際空間的呢? |
|
| 9樓: | >>參與討論 |
| 作者: jekete 于 2006/11/2 14:45:00 發(fā)布:
關(guān)于變量 函數(shù)的變量(全局和局部)一般占用數(shù)據(jù)棧。因此注意,注意數(shù)據(jù)棧指針的設(shè)置。 |
|
| 10樓: | >>參與討論 |
| 作者: 尋找資料 于 2006/11/2 15:39:00 發(fā)布:
在ADS1.2下,如何讓它能編譯ARM c++語言 請教各位個問題,在ADS1.2下,如何讓它能編譯ARM c++語言.我在設(shè)置語言欄處設(shè)置了ARM C++ compiler,也選了ISO STANDARD c++,但是查看預(yù)處理宏定義,沒看見有__cplusplus的預(yù)定義.所以,有個模板,它死活不認(rèn)識.又ARM手冊上,說可以支持模板的.所以,請教如何配置,讓ADS1.2編譯C++ |
|
| 11樓: | >>參與討論 |
| 作者: ketp 于 2006/11/2 15:44:00 發(fā)布:
Region$$Table ? Erro : L620E: Section Region$$Table cannot be assigned to a non-root region. Erro : L620E: Section Region$$Table cannot be assigned to a non-root region. ==================================================================== 請問以上警告是怎么回事,2個table是什么table。 我將anon$$obj.o (+RO)放在root region后不再警告,但不知道具體原因。 |
|
| 12樓: | >>參與討論 |
| 作者: jekete 于 2006/11/2 17:02:00 發(fā)布:
答復(fù)“在ADS1.2下,如何讓它能編譯ARM c++” 估計是設(shè)置不對,應(yīng)該在工程項目中加入你的C++文件。并使 這個工程項目為當(dāng)前工程項目。 |
|
| 13樓: | >>參與討論 |
| 作者: jekete 于 2006/11/2 17:08:00 發(fā)布:
答復(fù)“ketp” 關(guān)于“Region$$Table ” 可能是在scatter描述文件中,沒有為某些文件指派地址。 |
|
| 14樓: | >>參與討論 |
| 作者: ketp 于 2006/11/2 18:39:00 發(fā)布:
這是scatter。anon$$obj是編譯器自動生成的 ROM_LOAD 0x80000000 { ROM_EXEC 0x80000000 { Startup.o (vectors, +First) anon$$obj.o (+RO);//沒有這句就有以上erro。 } ROM_EXEC1 0x80019000 { main.o (+RO) * (+RO) } ERAM +0 { * (+RW,+ZI) } HEAP +0 UNINIT { Startup.o (Heap) } HEAP_BOTTOM 0x80080000 UNINIT { Startup.o (HeapTop) } IRAM 0x40000000;//內(nèi)部ram放堆棧 { Startup.o (MyStacks) } STACKS_BOTTOM +0 UNINIT { Startup.o (StackBottom) } STACKS 0x40004000 UNINIT { Startup.o (Stacks) } } * - 本貼最后修改時間:2006-11-2 18:40:35 修改者:ketp |
|
| 15樓: | >>參與討論 |
| 作者: liangjingxin 于 2006/11/2 20:26:00 發(fā)布:
請問一個很久還沒解決的問題。 請問這句警告是什么意思,是因為什么產(chǎn)生的,如何解決?Warning:L6329W:D:\****\scat_b.scf(LINE 42, col 13) Pattern *(RW) ONLY matches removed unused sections. |
|
| 16樓: | >>參與討論 |
| 作者: jekete 于 2006/11/3 9:14:00 發(fā)布:
答復(fù)“請問一個很久還沒解決的問題” Warning:L6329W:D:\****\scat_b.scf(LINE 42, col 13) Pattern *(RW) ONLY matches removed unused sections. 只匹配了已經(jīng)刪除的沒有用的段!這些段的屬性是RW。 在ADS中EDIT/DEBUG SETTINGS/ARM LINKER/OPTIONS的設(shè)置面板中 有一些Remove unused sevtion設(shè)置不正確,如果程序不大,不刪除這些沒用 的段。 |
|
| 17樓: | >>參與討論 |
| 作者: jekete 于 2006/11/3 9:21:00 發(fā)布:
答復(fù)“KETP” ROM_EXEC 0x80000000 { Startup.o (vectors, +First) anon$$obj.o (+RO);//沒有這句就有以上erro 系統(tǒng)認(rèn)為,除了 Startup.o以外,還應(yīng)該把另外的R0指派到0X80000000以下,但你沒有指定這些文件,所以出錯。 不要希望系統(tǒng)自動生成理想的代碼,在略復(fù)雜的(多于3個段)時,應(yīng)該使用Scatter文件完成地址分配。 |
|
| 18樓: | >>參與討論 |
| 作者: ketp 于 2006/11/3 10:26:00 發(fā)布:
謝謝。我的問題在以下網(wǎng)址有解答。 http://hi.baidu.com/fanzier/blog/item/1cdab338be0463c2d462252c.html anon$$obj.o是包含Region$$Table和Region$$Table的c庫代碼。 |
|
| 19樓: | >>參與討論 |
| 作者: hqgboy 于 2006/11/3 11:20:00 發(fā)布:
在ADS中用C編程..ARM和THUMB混合編程時,中斷部分如何編程? |
|
| 20樓: | >>參與討論 |
| 作者: jekete 于 2006/11/3 12:37:00 發(fā)布:
中斷 1,在THUMB狀態(tài)下發(fā)生中斷 ,進(jìn)入中斷后自動切換到ARM狀態(tài),從中斷返回時 執(zhí)行一條返回指令,自動返回到THUMB狀態(tài)。 2,中斷后自動進(jìn)入ARM狀態(tài)。 3,一般在中斷中使用THUMB時,必須使用指令進(jìn)行切換。 |
|
| 21樓: | >>參與討論 |
| 作者: liangjingxin 于 2006/11/4 0:41:00 發(fā)布:
感謝jekete,問題解決了。 |
|
| 22樓: | >>參與討論 |
| 作者: liangjingxin 于 2006/11/4 0:45:00 發(fā)布:
再問jekete一個問題。 為什么程序大就得刪除沒有用的段呢?不是每個段都用上了嗎?這樣做有什么意義有什么用呢? |
|
| 23樓: | >>參與討論 |
| 作者: lml2525 于 2006/11/7 9:26:00 發(fā)布:
arm調(diào)試 我是用ads1.2 配合h-jtag 加wigger 來做的調(diào)試,現(xiàn)在出現(xiàn)個問題就是在SDRAM調(diào)試程序的時候有時候在那裡卡住,像等待中斷一下,就一直停在一條指令。有說是SDRAM要初始化,那我要怎麼做,望各位指教。謝謝! |
|
| 24樓: | >>參與討論 |
| 作者: hqgboy 于 2006/11/7 9:33:00 發(fā)布:
謝謝...是不是C就沒法混合編程了..只能用匯編. 因為我在設(shè)置混合編程后,用__IRQ.編譯報錯... |
|
| 25樓: | >>參與討論 |
| 作者: jekete 于 2006/11/7 13:21:00 發(fā)布:
答復(fù)“l(fā)iangjingxin” 沒有用的段是沒有使用的段,除了占用空間外沒有其它用處,程序越大沒有用的段可能越多。 |
|
| 26樓: | >>參與討論 |
| 作者: jekete 于 2006/11/7 13:26:00 發(fā)布:
答復(fù)“hqgboy” C可以和ARM匯編、THUMB混合編程,可能設(shè)置不對。 |
|
| 27樓: | >>參與討論 |
| 作者: jekete 于 2006/11/7 13:35:00 發(fā)布:
答復(fù)“l(fā)ml2525” 我沒有明白你什么問題,要吧問題表達(dá)清楚。 |
|
| 28樓: | >>參與討論 |
| 作者: liyuanhua 于 2006/11/7 14:22:00 發(fā)布:
請問樓主 timer 中斷 我的程序開了很多中斷 timer 中斷,串口中斷,iic中斷 等等,在程序全速執(zhí)行的時候,所有的中斷正常,程序工作沒問題,但是如果我設(shè)置了一個斷點,程序在斷點處break后,再繼續(xù)執(zhí)行程序,timer就不會產(chǎn)生中斷了,(在timer中斷程序處設(shè)置斷點,永遠(yuǎn)也運行不到斷點處,程序中與timer有關(guān)的部分也不運行了),而其它的中斷正常,不知道怎么回事,望答復(fù),非常感謝。! |
|
| 29樓: | >>參與討論 |
| 作者: daikunjuan 于 2006/11/7 15:16:00 發(fā)布:
ADS編譯問題 如何看ro,rw,heap 等各個段的大小 我編譯出現(xiàn)的錯誤是:Entry point(0x80000000)lies outside the image 這個該怎么改啊 |
|
| 30樓: | >>參與討論 |
| 作者: zhm2002 于 2006/11/7 21:22:00 發(fā)布:
程序定位問題 最近開始學(xué)習(xí)arm編程,編了一個小程序.用仿真器仿真運行可以. 硬件平臺是WINBOND的W90N740,軟件用ads 程序主要有兩個,一個初始化文件init.s,一個主程序main.c 編譯后發(fā)現(xiàn)init.s的匯編程序地址位置在main.c后面.axd load image后pc指針是指在init.s位置的,所以程序運行也正常. 我現(xiàn)在想要編一個能脫機(jī)運行的程序,就是bootload,初始化和下載程序想放在init.s文件中,但是如果編譯后init.s地址在main.c程序后的話,脫機(jī)應(yīng)該肯定不行.所以求助:如何使init.s編譯后地址位于0x0處.(目前仿真是RO=0x8000) (用entery point沒用,好像ads默認(rèn)main.c所在的程序就是首地址似的) 此外還想再問一個問題.若脫機(jī)運行的話,單板上電后,W90N740的程序空間會自動將btcs上掛的FLASH作為0x0嗎? |
|
| 31樓: | >>參與討論 |
| 作者: lml2525 于 2006/11/8 10:14:00 發(fā)布:
調(diào)試 在載入.axf文件之前要初始化寄存器。 這個初始化寄存器到底怎麼做? |
|
| 32樓: | >>參與討論 |
| 作者: wangkj 于 2006/11/8 10:58:00 發(fā)布:
這么好的帖子不加精,斑竹可以辭職了。 |
|
| 33樓: | >>參與討論 |
| 作者: jekete 于 2006/11/8 11:16:00 發(fā)布:
答復(fù)“l(fā)ml2525” 在加載“axf文件之前要初始化寄存器”,為什么要初始化積存器?哪里提到過要初始化積存器? |
|
| 34樓: | >>參與討論 |
| 作者: jekete 于 2006/11/8 11:21:00 發(fā)布:
答復(fù)“zhm2002” 程序定位,使用scatter是非常必要的,請使用scatter描述文件。但W90N740我不熟悉。 |
|
| 35樓: | >>參與討論 |
| 作者: jekete 于 2006/11/8 11:26:00 發(fā)布:
答復(fù)“l(fā)iyuanhua” 你可以在斷點處檢查“timer 中斷”的狀態(tài),可能已經(jīng)中斷了?可能現(xiàn)在的斷點影響了“timer 中斷”? 我的程序開了很多中斷 timer 中斷,串口中斷,iic中斷 等等,在程序全速執(zhí)行的時候,所有的中斷正常,程序工作沒問題,但是如果我設(shè)置了一個斷點,程序在斷點處break后,再繼續(xù)執(zhí)行程序 |
|
| 36樓: | >>參與討論 |
| 作者: jekete 于 2006/11/8 11:31:00 發(fā)布:
答復(fù)“daikunjuan” 在列表文件種列舉了各段的的長度(包括RO、RW、PI),你文件的入口不在影象文件的范圍內(nèi),注意必須是入口點在影象文件的范圍內(nèi)。 ADS編譯問題 如何看ro,rw,heap 等各個段的大小 我編譯出現(xiàn)的錯誤是:Entry point(0x80000000)lies outside the image 這個該怎么改啊 |
|
| 37樓: | >>參與討論 |
| 作者: hqgboy 于 2006/11/8 16:06:00 發(fā)布:
請問在哪兒設(shè)置呢?謝謝... |
|
| 38樓: | >>參與討論 |
| 作者: jekete 于 2006/11/8 16:14:00 發(fā)布:
答“請問在哪兒設(shè)置呢?謝謝” 什么錯誤,說的詳細(xì)一點。 |
|
| 39樓: | >>參與討論 |
| 作者: jekete 于 2006/11/9 13:59:00 發(fā)布:
頂 頂 |
|
| 40樓: | >>參與討論 |
| 作者: littlefool 于 2006/11/9 18:41:00 發(fā)布:
scatter load 您好; 一個FLASH中是否可以將image劃分成不同的幾段,利用 scatter load下載到不同的地址空間中?是否可以實現(xiàn)? 如可以實現(xiàn)?如何實現(xiàn)?多謝. |
|
| 41樓: | >>參與討論 |
| 作者: 葉強(qiáng) 于 2006/11/9 21:43:00 發(fā)布:
111 請問下RO,RW,ZI的具體意思是什么。课也艑W(xué)ARM |
|
| 42樓: | >>參與討論 |
| 作者: jekete 于 2006/11/10 8:39:00 發(fā)布:
答復(fù)“l(fā)ittlefool” ,一個FLASH當(dāng)然可以劃分成不同的幾段,在scatter 中分為幾個加載域就可以了。 一個FLASH中是否可以將image劃分成不同的幾段,利用 scatter load下載到不同的地址空間中?是否可以實現(xiàn)? 如可以實現(xiàn)?如何實現(xiàn)?多謝 |
|
| 43樓: | >>參與討論 |
| 作者: littlefool 于 2006/11/10 12:10:00 發(fā)布:
多謝 多謝指導(dǎo) |
|
| 44樓: | >>參與討論 |
| 作者: jekete 于 2006/11/10 12:26:00 發(fā)布:
答復(fù)“l(fā)ittlefool” 可以吧一個FLASH劃分成不同的幾個區(qū),利用 scatter 文件,把不同的文件加載到不同的加載域。 |
|
| 45樓: | >>參與討論 |
| 作者: jekete 于 2006/11/10 12:29:00 發(fā)布:
答復(fù)“葉強(qiáng)” RO是“只讀代碼”,RW是“可讀可寫數(shù)據(jù)”,ZI是“初始化為0 的數(shù)據(jù)” |
|
| 46樓: | >>參與討論 |
| 作者: zliang2004 于 2006/11/10 12:30:00 發(fā)布:
請教C語言實驗發(fā)現(xiàn)的編譯不通過問題 你好,我在ADS中調(diào)試C語言程序發(fā)現(xiàn)UNKNOWN opcode,下面有圖,請指教,謝謝
|
|
| 47樓: | >>參與討論 |
| 作者: jekete 于 2006/11/10 16:25:00 發(fā)布:
答復(fù)“zliang2004” 所有的句子都不能通過編譯,所有的句子都對,請把test7.s改成test7. c就可以了。 以后不要粗心大意。 |
|
| 48樓: | >>參與討論 |
| 作者: 葉強(qiáng) 于 2006/11/10 21:27:00 發(fā)布:
謝謝 謝謝!我還想問下那里可以下ADS1。2的中文數(shù)據(jù)手冊,新手上路太多問題了 |
|
| 49樓: | >>參與討論 |
| 作者: mikezhong 于 2006/11/12 9:36:00 發(fā)布:
我在編譯時,出現(xiàn)如下的一個錯誤,找了很久不知道是什么問題! 下面框內(nèi)是ADS編譯后的信息,總是說在D:/myARM下找不到這個文件,我的D盤下根本沒有myARM的文件夾,請問是什么原因,如何解決?謝謝 ///////////////////////////////////////////////////////////////////// Error : (Fatal) L6002U: Could not open file D:\myARM\44B0X_codes\FS44B0II_Board_Codes\FS44B0XII_V3_LCDTP_Test\FS44B0XII_V3_C57_Test_Data\Interrupt_Hex\ObjectCode\Slib.o. Not enough information to list the image sizes and/or totals. Finished: 1 information, 0 warning, 0 error and 1 fatal error messages. ////////////////////////////////////////////////////////////////////
|
|
| 50樓: | >>參與討論 |
| 作者: jekete 于 2006/11/13 13:30:00 發(fā)布:
答復(fù)“mikezhong” 仔細(xì)清理文件夾,你的文件夾層數(shù)太深,ADS搜索比較困難,請減少文件夾的深度,如果需要,可以為ADS指定搜索路徑。 |
|
| 51樓: | >>參與討論 |
| 作者: jekete 于 2006/11/13 13:37:00 發(fā)布:
答復(fù)葉強(qiáng) 我也步清楚哪里有中文ADS,推薦《ARM開發(fā)工具ADS原理與應(yīng)用》 |
|
| 52樓: | >>參與討論 |
| 作者: allenone 于 2006/11/13 15:06:00 發(fā)布:
為什么我做的lib工程生成的.a文件特別大,而且加不進(jìn)工程? |
|
| 53樓: | >>參與討論 |
| 作者: daikunjuan 于 2006/11/13 16:40:00 發(fā)布:
AXD 不能下載映象文件是什么問題 AXD 不能下載映象文件是什么問題,出現(xiàn)如下錯誤: RDI Warning 00254: Unimplemented RDI message 我自己做的板子,請問是哪里的原因,先謝謝各位了 |
|
| 54樓: | >>參與討論 |
| 作者: jekete 于 2006/11/14 8:24:00 發(fā)布:
答復(fù)“allenone” 敘述的不清楚。如果你生成的文件擴(kuò)展名是a,就必須在文件映射中聲明這種文件類型。 |
|
| 55樓: | >>參與討論 |
| 作者: jekete 于 2006/11/14 8:34:00 發(fā)布:
答復(fù)“daikunjuan” RDI——remote debug interface 問題是:調(diào)試器和目標(biāo)板沒有連接上。 AXD 不能下載映象文件是什么問題,出現(xiàn)如下錯誤: RDI Warning 00254: Unimplemented RDI message 我自己做的板子,請問是哪里的原因,先謝謝各位 |
|
| 56樓: | >>參與討論 |
| 作者: daikunjuan 于 2006/11/14 11:17:00 發(fā)布:
調(diào)試器和目標(biāo)板沒有連接上 先謝謝樓主了 調(diào)試器和目標(biāo)板沒有連接上,要從哪里找原因呢,我的硬件電路測試是沒有問題的 |
|
| 57樓: | >>參與討論 |
| 作者: jekete 于 2006/11/14 12:26:00 發(fā)布:
答復(fù)“daikunjuan ” 這個很難說了,主要: 1,AXD設(shè)置是否正確? 2,連接線是否正確? 3,目標(biāo)板JTAG口是否正確? 4,目標(biāo)板的復(fù)位、電源、是否正確? |
|
| 58樓: | >>參與討論 |
| 作者: daikunjuan 于 2006/11/14 14:44:00 發(fā)布:
JTAG問題解決了,但。。。。 現(xiàn)在可以識別JTAG了,但是下載映象文件,總是running在Startup.s文件,跳不到main函數(shù),是什么原因呢 |
|
| 59樓: | >>參與討論 |
| 作者: mikezhong 于 2006/11/15 0:10:00 發(fā)布:
調(diào)試時,不按程序執(zhí)行,而是函數(shù)的順序執(zhí)行. To:jekete 你好,謝謝你的回復(fù),我在同一個目標(biāo)建立一個簡單的工程程序沒有此問題,如果是文件太深這個應(yīng)該也會有這個問題啊. 另外,我在AXD調(diào)試時,按運行跳到MAIN中開始的第一個斷點處,開始跟蹤,發(fā)現(xiàn)只能單步,不能進(jìn)入函數(shù)內(nèi)部,同時如果進(jìn)行死XUN環(huán)后,單步調(diào)試亂跳,,跳到其它函數(shù)中順序執(zhí)行.如果一個文件中有5個函數(shù),它依次執(zhí)行,不管程序調(diào)用返回,亂了,這是什么原因.? |
|
| 60樓: | >>參與討論 |
| 作者: daikunjuan 于 2006/11/15 14:22:00 發(fā)布:
不能單步運行 請問,程序不能單步運行,一運行就跑到反匯編指令,是什么原因 |
|
| 61樓: | >>參與討論 |
| 作者: jekete 于 2006/11/16 8:52:00 發(fā)布:
答復(fù)“daikunjuan” 遇到這種情況,可以關(guān)閉AXD,重新打開,重新加載。有可能是設(shè)置問題:右鍵單擊程序,會彈出一個菜單,重新設(shè)置stopping mode 模式,不要設(shè)置在disassebly模式。 |
|
| 62樓: | >>參與討論 |
| 作者: jekete 于 2006/11/16 9:26:00 發(fā)布:
答復(fù)“mikezhong” 程序當(dāng)然按照函數(shù)(輸入段)的順序執(zhí)行,因此你必須指定函數(shù)(輸入段)的順序,正確的方法是使用scatter描述文件分配地址。 按照程序執(zhí)行是簡單程序或處雪者的合理想象,對于復(fù)雜程序是不能實現(xiàn)的,例如一個循環(huán)程序或從后面跳到前面的程序? |
|
| 63樓: | >>參與討論 |
| 作者: wangkj 于 2006/11/16 10:09:00 發(fā)布:
lz高人 |
|
| 64樓: | >>參與討論 |
| 作者: jekete 于 2006/11/20 12:30:00 發(fā)布:
頂 頂 |
|
| 65樓: | >>參與討論 |
| 作者: paullin 于 2006/11/22 11:06:00 發(fā)布:
關(guān)于ADS中編譯指針數(shù)組出錯. 誰知道在ADS1.2中如何定義指針數(shù)組呀? 我這樣定義 uint8 * const TEST[]={"aa","bb"}; 結(jié)果編譯后有如下錯誤 Error : C3028E: '=': implicit cast of pointer to non-equal pointer HardWare.c LINE 6 |
|
| 66樓: | >>參與討論 |
| 作者: paullin 于 2006/11/22 11:08:00 發(fā)布:
指針數(shù)組編譯出錯問題 誰知道在ADS1.2中如何定義指針數(shù)組呀? 我這樣定義 uint8 * const TEST[]={"aa","bb"}; 結(jié)果編譯后有如下錯誤 Error : C3028E: '=': implicit cast of pointer to non-equal pointer HardWare.c LINE 6 |
|
| 67樓: | >>參與討論 |
| 作者: magic2858 于 2006/11/22 11:41:00 發(fā)布:
MAKE 之后main不正常 在生成的make file中,我看到_main雖然屬于RO段,但它前面的標(biāo)識并不是Text,而是*。!,請問是為什么? |
|
| 68樓: | >>參與討論 |
| 作者: jackwu1780 于 2006/11/22 14:53:00 發(fā)布:
問大哥一個變量的問題 請問大哥,對于程序變量的分配,我的理解是這樣的,不知道是不是對的,請大哥指點一二。 基于MCU,在程序編譯的時候,編譯程序會把芯片的RAM空間分成兩個區(qū),一個是系統(tǒng)堆棧區(qū),用于存放程序中的局部變量;一個用來存放程序中的全局變量。在程序中的全局變量,分配在第二個RAM區(qū)域中。程序中的全局變量在編譯的時候,都有固定的RAM地址,在程序運行的時候,直接訪問就可以了;而局部變量分配的是一個相對于堆棧頂指針的偏移地址,在函數(shù)被執(zhí)行時,系統(tǒng)把調(diào)用這個函數(shù)的程序現(xiàn)場存入堆棧中,運行的這個函數(shù)的局部變量就會使用偏移地址+堆棧棧頂?shù)刂罚辉诤瘮?shù)返回以后,堆棧就會彈出,這樣局部變量的空間就可以被重新利用了,是不是這樣? 如果我理解不對,請問大哥在什么書可以找到相應(yīng)答案,謝謝 |
|
| 69樓: | >>參與討論 |
| 作者: thymomn 于 2006/11/22 16:46:00 發(fā)布:
問題請教 大家好!本人最近在弄JTAG調(diào)試,目標(biāo)板是ARM7TDMI的核,平臺是ADS1.2+MULTI ICE 2.2.6,F(xiàn)在問題是,在調(diào)試MULTI ICE自帶的實例代碼時可以調(diào)試,但調(diào)試我們自己的代碼時(代碼有28M)總是在loading image時失敗,MULTI ICE的BUSY 指示等狂閃一段時間后熄滅,然后AXD彈出 “000436,硬件接口超時”的錯誤,我看了很多網(wǎng)上說明,不知道和系統(tǒng)起來后的RO,RW,ZI的區(qū)域有關(guān),請有經(jīng)驗的高人指點指點,謝謝! |
|
| 70樓: | >>參與討論 |
| 作者: magic2858 于 2006/11/22 16:49:00 發(fā)布:
問個ADS中__main跳轉(zhuǎn)的問題 jekete 您好,有個問題困擾好多天,請幫忙看看: 在ARM初始化完成后,進(jìn)行向主函數(shù)跳轉(zhuǎn)的過程中。我使用ADS提供的庫函數(shù)__main來跳轉(zhuǎn),它可以實現(xiàn)代碼的拷貝,ZI段的初始化,然后_main通過調(diào)用_rt_entry完成stach,heap的初始化。這種跳轉(zhuǎn)在仿真器上仿真,系統(tǒng)工作正常(RO_base=0x30100000,RW_base=0x32000000)。程序通過_main跳轉(zhuǎn)到主函數(shù)然后正常執(zhí)行程序。 但將代碼加載域重新分配后(RO_base=0x0,RW_base=0x30000000)生成.bin文件,燒寫到NorFlash上,重新上電后系統(tǒng)無法進(jìn)入主函數(shù)。我們通過在代碼中加亮燈程序的方法進(jìn)行定位,程序出錯的地方如下: __value_in_regs struct __initial_stackheap __user_initial_stackheap(unsigned R0, unsigned SP, unsigned R2, unsigned SL) { struct __initial_stackheap config; config.heap_base =0x33200000; //(unsigned int) &Image$$ER_RW$$Limit; config.stack_base =SP;//0x33ff5800; //0x33f00000;// ledon(); //亮燈程序 return config; //返回函數(shù) } main() { …… } 程序在進(jìn)入堆棧初始化程序中,執(zhí)行到“亮燈程序”之后跑飛的,但是沒有進(jìn)入主函數(shù)main()。 如果用ldr pc, =main進(jìn)行跳轉(zhuǎn),程序可以進(jìn)入主函數(shù),但是由于沒有對堆棧以及用到的C庫函數(shù)進(jìn)行初始化,所以主函數(shù)里面的程序無法正常工作。 目前的問題是:一定要實現(xiàn)對堆棧的初始化,并給主函數(shù)返回堆棧地址。初始化C庫函數(shù)。只有這樣才能保證后面的函數(shù)在用到C庫函數(shù)的時候執(zhí)行正確。 請問使用__main跳轉(zhuǎn),在硬件仿真中都可以通過,下載到FLASH中就跑飛的原因是什么?該如何解決? |
|
| 71樓: | >>參與討論 |
| 作者: thymomn 于 2006/11/22 16:54:00 發(fā)布:
問個JTAG的基礎(chǔ)問題 jekete 您好! 請問個基礎(chǔ)問題:ADS 調(diào)試LOAD IMAGE究竟有什么用?調(diào)試時是調(diào)試目標(biāo)板上FLASH的程序還是LOAD的IMAGE? |
|
| 72樓: | >>參與討論 |
| 作者: jekete 于 2006/11/23 8:34:00 發(fā)布:
答復(fù)“thymomn” 自己做一個短小的程序,先實驗一下。 |
|
| 73樓: | >>參與討論 |
| 作者: jekete 于 2006/11/23 8:45:00 發(fā)布:
答復(fù)“thymomn” 要看你把目標(biāo)文件加載到哪里,主要是分析目標(biāo)文件的加載地址和執(zhí)行地址。 jekete 您好! 請問個基礎(chǔ)問題:ADS 調(diào)試LOAD IMAGE究竟有什么用?調(diào)試時是調(diào)試目標(biāo)板上FLASH的程序還是LOAD的IMAGE? |
|
| 74樓: | >>參與討論 |
| 作者: thymomn 于 2006/11/23 9:13:00 發(fā)布:
答復(fù)jekete jekete 您好! 答復(fù)一:要看你把目標(biāo)文件加載到哪里,主要是分析目標(biāo)文件的加載地址和執(zhí)行地址。 以下是我的SCATTER文件,SCATTER空間是按照SDRAM來進(jìn)行分配的,我實在不懂load image和調(diào)試FLASH上的程序有什么關(guān)系?還是我們調(diào)試的根本就不是FLASH上的程序而是調(diào)試load的axf文件?請指點,謝謝! 答復(fù)二: 自己做一個短小的程序,先實驗一下。 我試了MULTI ICE自帶的dhry例子,可以調(diào)試,能明顯看到ICE的工作狀態(tài)在變化。 ROM_LOAD 0x0 0xe00000 { ;// Total EXEC AREA size is 0xd00000. ;// Segment EXEC AREA to several parts to avoid relocation VALUE out of range. ROM_EXEC1 +0 0x400000 { init.o (Init, +First) * (+RO) } RAM_RW 0x00d00000 0x6F0000 { * (+RW) * (+ZI) } SYS_STACK 0x013F0000 0x10000 { mem_cfg.o (SYS_STACK_AREA) } RAM_DCAM 0x01400000 0x5d4d00 { mem_cfg.o (YUVExtBuf) } } |
|
| 75樓: | >>參與討論 |
| 作者: jekete 于 2006/11/23 9:18:00 發(fā)布:
答復(fù)“magic2858” 1,是否可以使用仿真器調(diào)試? 2,改動RO_base=0x30100000之后,是否改動image entry point? 3,從00到堆棧33200000已經(jīng)超過了32M的距離,對于有些用法可能存在困難, 比如跳轉(zhuǎn)語句可能有問題。 4,其它不詳。 |
|
| 76樓: | >>參與討論 |
| 作者: jekete 于 2006/11/23 11:20:00 發(fā)布:
答復(fù)“thymomn” 概念是混亂的,你所調(diào)試的,是你“l(fā)oad image”的目標(biāo)文件,如果這個文件加載到“FLASH”上,你所調(diào)試的就是“FLASH”上目標(biāo)代碼,如果你加載到SDRAM上,你所調(diào)試的就是SDRAM上的代碼。 先弄清楚基本概念,你的SCATTER文件有明顯的錯誤,第一段加載到ROM_EXEC1 +0 0x400000,結(jié)束在E00000+400000=1200000,第二段怎么加載到0x00d00000? 我實在不懂load image和調(diào)試FLASH上的程序有什么關(guān)系?還是我們調(diào)試的根本就不是FLASH上的程序而是調(diào)試load的axf文件?請指點,謝謝! |
|
| 77樓: | >>參與討論 |
| 作者: jekete 于 2006/11/23 11:27:00 發(fā)布:
答復(fù)“jackwu1780‘ 說的基本正確。 請問大哥,對于程序變量的分配,我的理解是這樣的,不知道是不是對的,請大哥指點一二。 基于MCU,在程序編譯的時候,編譯程序會把芯片的RAM空間分成兩個區(qū),一個是系統(tǒng)堆棧區(qū),用于存放程序中的局部變量;一個用來存放程序中的全局變量。在程序中的全局變量,分配在第二個RAM區(qū)域中。程序中的全局變量在編譯的時候,都有固定的RAM地址,在程序運行的時候,直接訪問就可以了;而局部變量分配的是一個相對于堆棧頂指針的偏移地址,在函數(shù)被執(zhí)行時,系統(tǒng)把調(diào)用這個函數(shù)的程序現(xiàn)場存入堆棧中,運行的這個函數(shù)的局部變量就會使用偏移地址+堆棧棧頂?shù)刂;在函?shù)返回以后,堆棧就會彈出,這樣局部變量的空間就可以被重新利用了,是不是這樣? |
|
| 78樓: | >>參與討論 |
| 作者: jekete 于 2006/11/23 11:30:00 發(fā)布:
答復(fù)“thymomn” 以上看錯了,你的SCATTER沒有錯誤。 |
|
| 79樓: | >>參與討論 |
| 作者: thymomn 于 2006/11/23 12:30:00 發(fā)布:
謝謝jekete jekete,非常感謝你的詳細(xì)解答,但我怎么知道在load image時,是加載到SDRAM還是FLASH呢?還有如果*.axf文件大于SDRAM的size,那不是不能在SDRAM里調(diào)試?問的羅索點,請您能指點,謝謝! |
|
| 80樓: | >>參與討論 |
| 作者: jekete 于 2006/11/23 13:04:00 發(fā)布:
答復(fù)“thymomn 你還是沒有明白!你把文件加載到OOOO地址,你的系統(tǒng)中,0000地址是什么存儲器?如果”*.axf文件大于SDRAM的size“,那么,連正確加載都不能實現(xiàn),還能夠調(diào)試嗎? 非常感謝你的詳細(xì)解答,但我怎么知道在load image時,是加載到SDRAM還是FLASH呢?還有如果*.axf文件大于SDRAM的size,那不是不能在SDRAM里調(diào)試?問的羅索點,請您能指點,謝謝! |
|
| 81樓: | >>參與討論 |
| 作者: thymomn 于 2006/11/23 14:52:00 發(fā)布:
謝謝jekete 謝謝jekete,知道您的意思,非常感謝! |
|
| 82樓: | >>參與討論 |
| 作者: jekete 于 2006/11/23 17:15:00 發(fā)布:
答疑!答疑! 歡迎光臨本樓主的另一個答疑點!。。。。。。。。。。。。 http://www.mcu51.net/bbs/read.php?tid-775.html 歡迎光臨本樓主的另一個答疑點。。。。。。。。。。。。! http://www.mcu51.net/bbs/read.php?tid-775.html 歡迎光臨本樓主的另一個答疑點!。。。。。。。。。。。! http://www.mcu51.net/bbs/read.php?tid-775.html |
|
| 83樓: | >>參與討論 |
| 作者: magic2858 于 2006/11/23 20:40:00 發(fā)布:
請問jekete 謝謝您的回復(fù),根據(jù)您上次的回復(fù) 1,是否可以使用仿真器調(diào)試? 2,改動RO_base=0x30100000之后,是否改動image entry point? 3,從00到堆棧33200000已經(jīng)超過了32M的距離,對于有些用法可能存在困難, 比如跳轉(zhuǎn)語句可能有問題。 4,其它不詳。 1:程序在仿真器上工作正常 2:改RO_base=0x30100000為RO_base=0x0之后,image entry point自動為0X0 3:這個問題對于使用B __main進(jìn)行的跳轉(zhuǎn)也有影響嗎?程序是通過__main進(jìn)行堆棧初始化以及庫函數(shù)初始化后才跳轉(zhuǎn)到主函數(shù)的 程序下載如FLASH中工作不正常的原因我懷疑是函數(shù)重定向的問題,您有什么見解呢? |
|
| 84樓: | >>參與討論 |
| 作者: Sea_Heart 于 2006/11/23 23:20:00 發(fā)布:
也問幾個問題,關(guān)于axd 1.單步調(diào)試時,有時候寄存器的值和全速運行時的不一樣.這是怎么回事,例如,我調(diào)nand FLASH,去檢測id時,數(shù)據(jù)結(jié)果本來應(yīng)該是7ce6a5c0,但單步調(diào)試時可能順序會亂,比如變成e6a5c07c. 2.要重新從代碼起始點開始調(diào)試,只能reload image來做嗎?這樣是不是又重新下載了一次代碼到SDRAM或FLASH,它是否可以不用重新下載,直接回到代碼頭部運行? |
|
| 85樓: | >>參與討論 |
| 作者: jekete 于 2006/11/24 8:26:00 發(fā)布:
答復(fù)magic2858 終于明白你把程序下載到FLASH中去了,看來FLASH是內(nèi)部FLASH。 可能的問題是:仿真器是否有寫入FLASH的能力?是否支持FLASH寫入? |
|
| 86樓: | >>參與討論 |
| 作者: jekete 于 2006/11/24 8:41:00 發(fā)布:
答復(fù)Sea_Heart 1,這個問題不好解答,但是可能不會影響調(diào)試。使用JTAG調(diào)試,因為是邊界掃描和串行傳送數(shù)據(jù),不穩(wěn)定的仿真器可能有錯誤數(shù)據(jù)。 2,只能reload image來做,是又重新下載了一次代碼到SDRAM或FLASH。有的工具有復(fù)位功能。 1.單步調(diào)試時,有時候寄存器的值和全速運行時的不一樣.這是怎么回事,例如,我調(diào)nand FLASH,去檢測id時,數(shù)據(jù)結(jié)果本來應(yīng)該是7ce6a5c0,但單步調(diào)試時可能順序會亂,比如變成e6a5c07c. 2.要重新從代碼起始點開始調(diào)試,只能reload image來做嗎?這樣是不是又重新下載了一次代碼到SDRAM或FLASH,它是否可以不用重新下載,直接回到代碼頭部運行? |
|
| 87樓: | >>參與討論 |
| 作者: magic2858 于 2006/11/24 10:22:00 發(fā)布:
magic2858答復(fù)jekete 謝謝jekete。我是在ADS中生成二進(jìn)制文件后,用sjf2410專門的燒寫工具寫到板子上的norflash中去的。 我的目的是想讓程序脫離PC機(jī)和仿真環(huán)境工作。 在仿真環(huán)境下設(shè)計好的項目,燒寫到板子上的norflash中去就工作不正常。 在代碼搬運和跳轉(zhuǎn)都沒有問題的情況下,您看這種情況與函數(shù)重定向有關(guān)嗎? |
|
| 88樓: | >>參與討論 |
| 作者: jekete 于 2006/11/24 11:34:00 發(fā)布:
答復(fù)“magic2858 如果使用仿真器和脫離仿真器所使用的地址相同,不存在重定位問題。如果不同可能有這個問題。 仔細(xì)檢查最小系統(tǒng)是否存在問題。 |
|
| 89樓: | >>參與討論 |
| 作者: magic2858 于 2006/11/24 13:15:00 發(fā)布:
答復(fù)jekete 感謝! 仿真器是在SDRAM中運行,RO_base=0x30100000,RW_base=0x32000000 脫離仿真器后在實際電路中運行,將代碼下載到FLASH中。此時的RO_base=0x0,RW_base=0x32000000。兩種情況唯一的不同點就在這里。 我使用__use_no_semihosting_swi選項,查出還有3個函數(shù)處于semihosting狀態(tài),F(xiàn)正想辦法對其重定向,關(guān)鍵是不知道這些函數(shù)的結(jié)構(gòu),您知道怎么確定嗎? |
|
| 90樓: | >>參與討論 |
| 作者: jekete 于 2006/12/5 8:28:00 發(fā)布:
頂 自治州
|
|
| 91樓: | >>參與討論 |
| 作者: 祈禱之龍 于 2006/12/11 15:48:00 發(fā)布:
請教AXD下的調(diào)試怎么不能進(jìn)step in 就是step in 的效果是和step一樣的,進(jìn)不了函數(shù).以前不是這樣的.而且程序也沒按照預(yù)先的走,請教怎么回事? |
|
| 92樓: | >>參與討論 |
| 作者: qljqlj 于 2006/12/11 16:38:00 發(fā)布:
還是不能單步調(diào)試的問題 剛開始下載進(jìn)去時,出現(xiàn)"NO disassembly could be read at the requested address."不能調(diào)試,一按"GO ",就出現(xiàn)上面的的對話框后,來重新亂試了,不知道,怎么可以按"GO ",就可以跑了,但是還是不能單步調(diào)試,并且停止后,還是出現(xiàn)上面的 對話框,請問,怎么回事 |
|
| 93樓: | >>參與討論 |
| 作者: bl20020825 于 2006/12/11 17:43:00 發(fā)布:
問一下 我對ADS中的那個只讀段位置無關(guān)(ropi)、讀寫段的位置無關(guān)(rwpi)等等未理解,位置無關(guān)到底是啥子意思哦?望指點!謝謝 |
|
| 94樓: | >>參與討論 |
| 作者: anyusb 于 2006/12/12 18:56:00 發(fā)布:
呵呵. |
|
| 95樓: | >>參與討論 |
| 作者: uisffer 于 2006/12/13 8:48:00 發(fā)布:
關(guān)于scatter文件的問題 scatter文件 CODE: ROM_LOAD 0x7F000000 { ROM +0 { init.o (Init, +First) anon$$obj.o __main.o(!!!) ; __main.o(+RO) ; copy code ; *(Region$$Table) ; RO/RW addresses to copy ; *(ZISection$$Table) ; ZI addresses to copy sh.o dhcp.o ; inflate.o ; infblock.o ; infcodes.o ; inftrees.o uprintf.o * (+RO) } RAM 0x0 { vectors.o(Vect, +First) flash.o bib.o image.o TftpServer.o NetKernel.o PacketDriver.o xmodem.o * (+RW, +ZI) } } [Copy to clipboard] 編譯警告 Warning : L6314W: .\Src\scat_c.scf(LINE 39, col 9) No section matches pattern dhcp.*o(RO). scat_c.scf LINE 39 Warning : L6314W: .\Src\scat_c.scf(LINE 50, col 3) No section matches pattern TftpServer.*o(RO). scat_c.scf LINE 50 Warning : L6314W: .\Src\scat_c.scf(LINE 51, col 3) No section matches pattern NetKernel.*o(RO). scat_c.scf LINE 51 Warning : L6314W: .\Src\scat_c.scf(LINE 52, col 9) No section matches pattern PacketDriver.*o(RO). scat_c.scf LINE 52 出現(xiàn)警告的幾個目標(biāo)文件是子工程里的,編譯父工程時子工程的這些文件已全部編譯,為什么找不到匹配的section?父工程還有其它子工程,不存在這個問題,如目標(biāo)文件flash.o,bib.o,image.o。 請問出現(xiàn)警告的原因是什么? |
|
| 96樓: | >>參與討論 |
| 作者: uisffer 于 2006/12/13 8:50:00 發(fā)布:
專家不在? 另外在http://www.mcu51.net/bbs/read.php?tid-775.html發(fā)的帖子 專家不在? 是不是專家比較忙? |
|
| 97樓: | >>參與討論 |
| 作者: jekete 于 2006/12/13 10:43:00 發(fā)布:
答復(fù)" uisffer " 關(guān)于子工程:可能的問題是: 1, 子工程的屬性是否設(shè)置正確? 2,子工程是否被使用過?如果沒有使用使用過,可能已被刪除? 3,子工程必須是一個完整的段? |
|
| 98樓: | >>參與討論 |
| 作者: jekete 于 2006/12/13 10:45:00 發(fā)布:
答復(fù)bl20020825 位置無關(guān)就是編譯器可以安排任意的地址. |
|
| 99樓: | >>參與討論 |
| 作者: jekete 于 2006/12/13 10:46:00 發(fā)布:
答復(fù)qljqlj 你的代碼沒有寫入到所希望的存儲器中去! |
|
| 100樓: | >>參與討論 |
| 作者: jekete 于 2006/12/13 10:50:00 發(fā)布:
答復(fù)祈禱之龍 如下: 1,打開程序 2,右鍵單擊,彈出一個級連菜單, 3,單擊"stpping mode",打開一個子菜單 3,選擇合適的調(diào)試方式. |
|
| 101樓: | >>參與討論 |
| 作者: jekete 于 2006/12/13 10:53:00 發(fā)布:
樓主告示 對ADS的有關(guān)問題,請閱讀 <ARM開發(fā)工具ADS原理與應(yīng)用>這本書 |
|
| 102樓: | >>參與討論 |
| 作者: wangkj 于 2006/12/13 12:41:00 發(fā)布:
這本書有沒有電子版的或者哪里有賣的 |
|
| 103樓: | >>參與討論 |
| 作者: js_wawayu 于 2006/12/13 16:09:00 發(fā)布:
anon$$obj.o (+RO) 這個文件里含有entry point所以它的load address必須和execute address一致,這個可以看看ads的幫助文件 |
|
| 104樓: | >>參與討論 |
| 作者: js_wawayu 于 2006/12/13 16:20:00 發(fā)布:
在進(jìn)入main之前編譯器自動生成什么? main函數(shù)是自己定義的,編譯器還有一個__main入口,這里面進(jìn)行代碼搬移以及標(biāo)準(zhǔn)庫的初始化工作,最后跳轉(zhuǎn)到main,當(dāng)然也可以自己寫代碼完成代碼的搬移,然后直接跳轉(zhuǎn)到main,不走_(dá)_main |
|
| 105樓: | >>參與討論 |
| 作者: treeslu 于 2006/12/14 10:22:00 發(fā)布:
2410 進(jìn)一次任務(wù)后就跑飛的問題 正像上次那位ZLG-ARM 所講,將semiHosting 去掉就好了,但當(dāng)時俺不知道所謂的semihosting 在那里,是啥,病急亂投醫(yī),被我撞上了,去年調(diào)EasyARM時,是沒有做這個動作的;不知當(dāng)時是否默認(rèn)取消semihosting, 查了一下資料,當(dāng)需要通過嵌入式調(diào)試工具調(diào)用標(biāo)準(zhǔn)的C庫函數(shù)時,需要semihosting來輔助完成。 問題: 1,為什么不取消"semihosting"會造成進(jìn)一次Uart0Task后就跑飛了,而且停不下來? 2,為什么每次了解到AxD都需要/Configure Processor/中Clear All "Vector Catche" 和取消"semihosting",而不能操作一次后,保存記錄? 附加問題: 3,從ADS編譯好后,連接到AxD時,會出現(xiàn)一警告對話框“The session file'C:\Documents and Settings\...\default-1-2-0-0.ses'could not be loaded。” 然后“OK”,“Configure Target”再連一次就好了? |
|
| 106樓: | >>參與討論 |
| 作者: hewn 于 2006/12/14 11:03:00 發(fā)布:
問個關(guān)于JTAG的問題 我的ARM開發(fā)板通過JTAG連接到筆記本電腦時,AXD總是提示DBE Warning 00041:An unspecified Debug Toolbox Call Failed.設(shè)置都沒問題,我在辦公室的臺式機(jī)上試就沒問題。更改并口的工作模式也不行,請問如何解決這個問題。謝謝! |
|
| 107樓: | >>參與討論 |
| 作者: treeslu 于 2006/12/14 11:08:00 發(fā)布:
請幫忙解答,問題解決不知道為啥 俺最近ADS中調(diào)UCOS,遇到下面三個問題 查了一下資料,當(dāng)需要通過嵌入式調(diào)試工具調(diào)用標(biāo)準(zhǔn)的C庫函數(shù)時,需要semihosting來輔助完成。 1,為什么不取消"semihosting"會造成進(jìn)一次Uart0Task后就跑飛了,而且停不下來? 2,為什么每次連接到AxD都需要/Configure Processor/中Clear All "Vector Catche" 和取消"semihosting",而不能操作一次后,保存記錄? 3,從ADS編譯好后,連接到AxD時,會出現(xiàn)一警告對話框“The session file'C:\Documents and Settings\...\default-1-2-0-0.ses'could not be loaded! 然后“OK”,“Configure Target”再連一次就好了? |
|
| 108樓: | >>參與討論 |
| 作者: ge_fjk 于 2006/12/14 14:30:00 發(fā)布:
[求助]2440不能進(jìn)入調(diào)試模式 自己做了一塊S3C2440的板子,使用AXD調(diào)試始終顯示無法進(jìn)入調(diào)試模式(原開發(fā)板上是好的)。提示:RDI Warning 00201: Cannot open target: the target is not responding. 使用JTAG的并口debug代理程序,能夠發(fā)現(xiàn)ARM核。 使用SJF2440對FLASH的操作都正常,(SJF2440好像只是單方面燒FLASH,不進(jìn)行驗證,所以不能表明系統(tǒng)正常了)。 看了muti-ice的手冊,說是能夠用autoconfig發(fā)現(xiàn)ARM核,但是無法進(jìn)入調(diào)試模式, 通常是JTAG信號質(zhì)量問題,但是示波器測出來波形很好,同時我把JTAG的速率 使用20KHz,還是不行。請問可能是什么問題呢? |
|
| 109樓: | >>參與討論 |
| 作者: 農(nóng)民講習(xí)所 于 2006/12/14 14:41:00 發(fā)布:
樓上的燒個BOOTLOADER就可以調(diào)試了 原因就是上電飛走了。程序要跳到SDRAM中才行,在4KBOOTRAM中是不行的。 |
|
| 110樓: | >>參與討論 |
| 作者: lw2008 于 2006/12/14 19:53:00 發(fā)布:
請LZ幫忙解答 我建模板生成將包含*.c生成obj1112.a庫,現(xiàn)將obj1112.a添加進(jìn)項目編譯,用JTAGInFLASH方式下載調(diào)試時,還是可以進(jìn)入原*.c的函數(shù)。obj1112.a不編譯成匯編了嗎? |
|
| 111樓: | >>參與討論 |
| 作者: lchengjun 于 2006/12/14 21:12:00 發(fā)布:
我的分散加載文件的問題 請教摟主: 我想把一個結(jié)構(gòu)體的內(nèi)容定位到外部ram中 在一個頭文件“ASICRAM.h"中只定義一個結(jié)構(gòu)體 ****ASICRAM.h***** typedef struct { ...... }ASICRAM; 然后在一個文件“DPRAMDEF.c"中只定義一個結(jié)構(gòu)體變量 #include "ASICRAM.h" ASICRAM spc; 在主程序文件里 extern ASICRAM spc; 然后分散加載文件這樣設(shè)置 ROM_LOAD 0x0 { ROM_EXEC 0x00000000 { Startup.o (vectors, +First) * (+RO) } IRAM 0x40000000 { Startup.o (MyStacks) * (+RW,+ZI) } STACKS_BOTTOM +0 UNINIT { Startup.o (StackBottom) } STACKS 0x40003c00 UNINIT { Startup.o (Stacks) } HEAP +0 UNINIT { Startup.o (Heap) } HEAP_BOTTOM 0x40004000 UNINIT { Startup.o (HeapTop) } ERAM 0x80000000 0x5ff { spc.o (+ZW) } } 程序調(diào)試發(fā)現(xiàn)結(jié)構(gòu)體沒有和外部ram聯(lián)系起來,外部ram沒有存放結(jié)構(gòu)體中的變量 為什么呢?請幫我分析一下,十分感謝 |
|
| 112樓: | >>參與討論 |
| 作者: jekete 于 2007/1/4 11:54:00 發(fā)布:
ding ding |
|
| 113樓: | >>參與討論 |
| 作者: zhaoem82 于 2007/1/4 13:46:00 發(fā)布:
用axd怎樣能在FLASH中調(diào)試? 是否是直接將在ads中ro-base修改為FLASH的起始地址就行? |
|
| 114樓: | >>參與討論 |
| 作者: coke 于 2007/1/4 18:16:00 發(fā)布:
如何搞定ADS結(jié)構(gòu)體嵌套對齊問題? #pragma pack(paush,1) typedef struct { U8 bLength; U8 bDescriptorType; #pragma pack(paush,1 struct { U8 address:4; U8 reserved:3; U8 direction:1; } bEndpointAddress; #pragma pack(pop) U8 bmAttributes; U16 wMaxPacketSize; U8 bInterval; } USB_endpoint_desc_t; #pragma pack(pop) 以上結(jié)構(gòu)體的定義加了packed關(guān)鍵詞了. 但是 TX_BUFF[3]=sizeof(USB_endpoint_desc_t); 結(jié)果還是8. 應(yīng)該是7才是啊. 如何搞定他? |
|
| 115樓: | >>參與討論 |
| 作者: jekete 于 2007/1/18 15:39:00 發(fā)布:
ding |
|
| 116樓: | >>參與討論 |
| 作者: qljqlj 于 2007/1/29 13:13:00 發(fā)布:
還是不能運行 61樓: 答復(fù)“daikunjuan” 遇到這種情況,可以關(guān)閉AXD,重新打開,重新加載。有可能是設(shè)置問題:右鍵單擊程序,會彈出一個菜單,重新設(shè)置stopping mode 模式,不要設(shè)置在disassebly模式。 我也碰見這種問題了,不知道怎么辦了.上面的回答,我試了,可是不行. 請問大家這個問題,我的板子原先是好好的,能設(shè)斷點,也能單步運行,后來我也不知道怎么搞的,不能運行了,我試著運行以前好的程序,都不行,奇怪了,難道是扳子芯片壞了嗎,謝謝. |
|
| 117樓: | >>參與討論 |
| 作者: jekete 于 2007/1/30 10:13:00 發(fā)布:
樓主告示 大家提出的很多問題,已經(jīng)超出了ADS內(nèi)容,所以樓主無能為力,現(xiàn)在本人較忙,有關(guān)ADS問題,可以參考<ARM開發(fā)工具ADS原理與應(yīng)用>(北航出版) |
|
| 118樓: | >>參與討論 |
| 作者: jekete 于 2007/1/30 10:18:00 發(fā)布:
頂 頂 |
|
| 119樓: | >>參與討論 |
| 作者: jekete 于 2007/2/12 14:51:00 發(fā)布:
頂 頂 |
|
| 120樓: | >>參與討論 |
| 作者: jekete 于 2007/3/19 12:32:00 發(fā)布:
繼續(xù) 繼續(xù)工作,可否? |
|
| 121樓: | >>參與討論 |
| 作者: aaronwong 于 2007/3/24 19:42:00 發(fā)布:
你好!請問ADS中匯編與C混合編程的問題 你好,非常感謝樓主在此幫助我們大家解答問題。 最近有個項目,需要使用PXA270的GPIO口做控制端口。在啟動代碼中初始化GPIO是一定的,另外在C應(yīng)用程序中,還需要用GPIO做實時控制信號,因此在C語言中也要使用GPIO的控制寄存器來控制GPIO的狀態(tài)和動作。 這樣的話,啟動代碼中和C程序中都要對GPIO控制寄存器進(jìn)行定義,如果分別用匯編語言和C頭文件做兩次寄存器定義,必然有重復(fù)之嫌。我現(xiàn)在只想在一個地方做一次定義,例如,在C語言的.h頭文件中用#define定義寄存器名字和地址,然后在匯編的啟動代碼中引用這些符號。比較迷惑的地方是: 1.匯編語言中是不是使用INCLUDE **.h就能把C頭文件包含進(jìn)來呢?如果包含進(jìn)來了,assembler能否認(rèn)識C語言的#define? 2.關(guān)于宏。因為C語言中和匯編語言定義寄存器地址的方法不同: #ifdef __ASSEMBLY__ # define __REG(x) (x) #else # define __REG(x) (*(volatile unsigned LONG *)(x)) #endif 如果在C頭文件中定義了這個宏,如何在匯編程序中引用這個宏?另外,如何在匯編程序中定義符號__ASSEMBLY__? 謝謝!! |
|
| 122樓: | >>參與討論 |
| 作者: jekete 于 2007/4/28 12:30:00 發(fā)布:
ding 為什么不能置頂??? |
|
| 123樓: | >>參與討論 |
| 作者: jekete 于 2007/4/28 12:32:00 發(fā)布:
為什么不能置頂? 為什么不能置頂??我還要繼續(xù)答疑 |
|
| 124樓: | >>參與討論 |
| 作者: FGD 于 2008/1/10 9:29:16 發(fā)布:
COUNT EQU 0x40003100 這個程序編譯通不過,總出現(xiàn)這種為題: |
|
| 125樓: | >>參與討論 |
| 作者: FGD 于 2008/1/10 9:32:53 發(fā)布:
接上面 Error : A1163E: UNKNOWN opcode 1 00000000 COUNT EQU 0x40003100 Error : A1163E: UNKNOWN opcode 6 00000000 START Error : A1163E: UNKNOWN opcode 10 0000000c LOOP 3 Errors, 0 Warnings
|
|
| 126樓: | >>參與討論 |
| 作者: liuliu 于 2008/3/13 11:12:44 發(fā)布:
調(diào)試時出現(xiàn)的錯誤 Error : (Fatal) L6002U: Could not open file D:\pos. 我的工程文件不是放在這個文件夾里,以前是從這個文件夾拷過來的,重新編譯過還是有這個錯誤,請問怎么解決? |
|
| 127樓: | >>參與討論 |
| 作者: lzliang 于 2008/11/5 9:58:13 發(fā)布:
定義全局變量 ,如果定義成unsigned int型就報以上警告 如果定義成unsigned char形時就不會警告 求解。! |
|
| 128樓: | >>參與討論 |
| 作者: boxing 于 2009/9/14 13:47:05 發(fā)布:
聽說別人的axd 運行時 系統(tǒng)會在main處默認(rèn)加個斷點 可是我的卻沒有 每次都手動 相當(dāng)郁悶 重裝也還是沒有 請問可否自己修改這個默認(rèn)設(shè)置? 另外 在ads中編輯代碼時 代碼前面點擊出現(xiàn)那個小深紅的點 是代表加入斷點嗎 為什么進(jìn)入到axd中就沒有用了呢 |
|
| 129樓: | >>參與討論 |
| 作者: lyh 于 2010/1/22 16:25:48 發(fā)布:
請問各位高手“Error : (Fatal) L6002U: Could not open file E:\ZH_SYSTEM\ARM Executable Image for UCOSII.”是什么意思
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |