第20問(wèn):
Q:入口點(diǎn)是什么意思 我在使用LPC2106上移植UCOS-II,每次MAKE時(shí)總是提示我 Image does not have an entry point,可是我是把光盤(pán)的vetctors.s 復(fù)制過(guò)來(lái)的,而且仔細(xì)看了看,已經(jīng)聲明了ENTERY,這是怎么回事
A:需要在ADS中設(shè)置入口。
第21問(wèn):
Q:請(qǐng)教:如何定義不被初始化變量
A:讓編譯器不知道有這個(gè)內(nèi)存地址即可。
A:如用分散加載文件分配RAM故意預(yù)留一部分RAM不分配,用它來(lái)存您不需要初始化的東西。或者不調(diào)用編譯器提供的啟動(dòng)代碼,不過(guò)這樣可能編程會(huì)麻煩一些。
第22問(wèn):
Q:我直接通過(guò)JTAG口下載EasyArm板帶的Ext1_test程序到arm中,出現(xiàn)中斷向量的告警:
interrupt vector is not correct arm is not running freely.
果然復(fù)位后芯片不能運(yùn)行。但是我用串口下載后芯片能正常工作,中斷也行的。
并且我用JTAG仿真的話,芯片能正常工作,中斷也行的,唯獨(dú)JTAG口下載不行。
不知道是什么原因
A:仿真器配置中要設(shè)置Erase Flash when need.也可以這樣試試:
1.可以先打開(kāi)一個(gè)工程在RAM中調(diào)試運(yùn)行;
2.stop程序;
3.使用File-》Load Image…重新加載Ext1_test生成的*.axf文件。
Q:仿真器配置中我是設(shè)置了Erase Flash when need,但照你說(shuō)的話,那不是在RAM下調(diào)試嗎
在RAM下調(diào)試我是可以的,但是下載后出現(xiàn)interrupt vector data is not correct.
我又看了幾篇文章,是不是跟中斷向量表的累加和不為零有關(guān)系啊
A:是的,是向量表的累加和不為零。
因?yàn)槿绻肐SP下載能運(yùn)行,說(shuō)明向量表的累加和已為零,而用JTAG下載不能運(yùn)行的情況可能是 沒(méi)有正常下載代碼。先在RAM中調(diào)試,目的是為了后面正確下載程序到FLASH.
第23問(wèn):
Q:用Scatter怎樣將某個(gè)函數(shù)或文件定位在Flash的某個(gè)位置
A:參考http: //www.zlgmcu.com/download/downs.asp?ID=1009
第24問(wèn):
Q:我在仿真時(shí)遇到這樣的提示:
Error, Flash is protected by user configation!
怎么寫(xiě)到flash里面呢
A:看配套《arm微控制器基礎(chǔ)與實(shí)戰(zhàn)》附錄一。
第25問(wèn):
Q:我在移植實(shí)驗(yàn)中想到了兩個(gè)問(wèn)題,如下:
1.Debug和Release以及DebugRel有什么不同,為什么在作2104移植實(shí)驗(yàn)時(shí),要用Release
2.在Release中為什么要將RW Base設(shè)置為0x40000040 我將其設(shè)置為0x40003000,
為什么不能工作
A:都只是一個(gè)問(wèn)題,內(nèi)存空間的使用,因?yàn)榕躉S要比較大的內(nèi)存空間,所以要騰出點(diǎn)地方。
第26問(wèn):
Q:請(qǐng)問(wèn)沒(méi)有MMU的arm芯片是否支持使用malloc()函數(shù)動(dòng)態(tài)分配內(nèi)存
A:是否支持malloc()函數(shù)與芯片沒(méi)有多大關(guān)系,主要與編譯器有關(guān)。
Q:再問(wèn):如果沒(méi)有操作系統(tǒng)支持呢
A:也支持。
第27問(wèn):
Q:在I2C實(shí)驗(yàn)程序中,我想查看數(shù)據(jù)緩沖區(qū)DataBuf的值,怎么查看
A:watch窗口或鼠標(biāo)停留在要查看的變量名上。
Q:我查詢(xún)的是寫(xiě)入DataBuf緩沖區(qū)的值,鼠標(biāo)在上面根本就不會(huì)出現(xiàn)他的值,即使在watch中加入, 結(jié)果也是“name not found”。
A:變量被優(yōu)化,調(diào)試時(shí)可以把該變量定義為全局變量查看。
第28問(wèn):
Q:仿真軟件和2104開(kāi)發(fā)板連接不上
DBE Warning 00041:
!An unspecified Debug Toolbox call failed
電源和開(kāi)發(fā)板都連好,錯(cuò)誤和沒(méi)接開(kāi)發(fā)板一樣,驅(qū)動(dòng)也安裝了,安裝時(shí)按確定鍵時(shí),軟件很長(zhǎng)時(shí)間才有如上反應(yīng),請(qǐng)幫忙
A:1.并口是否正常
2.在其它操作系統(tǒng)(如98)下或其它臺(tái)式PC下試試。
第29問(wèn):
Q:如何生成32位hex文件
我在Release Setting-》arm fromELF-》Output Format中設(shè)置為Intel 32bit HEX,可是好像沒(méi)有生成hex文件
A:試試這種方法:
Target--》Target Setting--》 ost Link中選擇“arm fromELF”加上你上面設(shè)的應(yīng)該不成問(wèn)題。
第30問(wèn):
Q:請(qǐng)問(wèn)關(guān)于settings中r0 base rw base的意思
A:ro:read only,rw:read and write.
第31問(wèn):
Q:編譯成功后的信息第一行,code,R0 data,RW data,ZI data,debug分別代表什么
A:R0 只讀段,即程序代碼空間;
RW 可讀/寫(xiě)段,即數(shù)據(jù)變量空間;
ZI 清零變量段,即需要清零初始化的數(shù)據(jù)變量空間。
第32問(wèn):
Q:如何在ADS里面看任務(wù)執(zhí)行的一些情況 比如堆棧。
A:多任務(wù)環(huán)境下的堆棧,內(nèi)存等信息需要調(diào)試軟件的支持才可以實(shí)現(xiàn)。
ucos下有一個(gè)統(tǒng)計(jì)功能的模塊可以間接實(shí)現(xiàn)部分功能。
評(píng)論
查看更多