ARM7(lpc2146)學(xué)習(xí)筆記-0606
1.保存文件名要全名(即包括擴(kuò)展名)
2.*.tdt文件刪除則整個工程都會重新編譯
3.*.axf為工程的調(diào)試文件
4.*.scf 分散加載描述文件
5.ADS的RelinFLASH版本設(shè)置了JTAG的加密,下載這個版本的代碼之后,JTAG調(diào)試就不能用了,通過周立功提供的LCP的ISP軟件,擦除掉芯片內(nèi)的程序就OK了。
二.ARM指令
6.小端方式:較低字節(jié)存放在較低地址(arm7)
7.通過對一個單元執(zhí)行兩次相同的寫操作,可保證復(fù)位后數(shù)據(jù)的寫入。因為人SRAM控制器包含一下回寫緩沖區(qū),要在進(jìn)行第二次寫時上一次的數(shù)據(jù)才真正被寫入SRAM
8.VHB:0xffe00000~0xffffffff,每個外設(shè)16KB
9.存儲器映射的基本概念是:每個存儲器組在存儲器映射中都有有下“物理上的”位置.
10.BOOT Block是芯片設(shè)計廠家在LPC2000系列ARM內(nèi)部固化的一段代碼,它在芯片復(fù)位后被首先運(yùn)行,其功能主要是判斷運(yùn)行哪個存儲器上的程序、檢查用戶代碼是否有效、判斷芯片是否被加密、芯片的在應(yīng)用編程(IAP)以及在系統(tǒng)編程功能(ISP)。這其中有些程序是可以被用戶調(diào)用的,比如擦寫片內(nèi)FLASH的IAP代碼。為了增加用戶代碼的可移植性,所以最好能把BOOT Block的代碼固定在某個地址上。但是因為各個芯片的片內(nèi)FLASH大小不盡相同,如果把BOOT Block的地址安排在片內(nèi)FLASH結(jié)束的位置上,那么就無法實現(xiàn)BOOT Block地址的固定。所以芯片生產(chǎn)商就把BOOT Block的地址重映射到片內(nèi)存儲器空間的最高處,即接近2G(0x80000000)的地方,這樣無論片內(nèi)存儲器大小如何,都不會影響B(tài)OOT Block的地址。可以讓包含有IAP操作的用戶代碼,不用修改IAP操作地址,就可以在不同的LPC2000系列ARM上運(yùn)行。
11.
MSR 指令的格式為:
MSR{條件} 程序狀態(tài)寄存器(CPSR 或SPSR);域,操作數(shù)
MSR 指令用于將操作數(shù)的內(nèi)容傳送到程序狀態(tài)寄存器的特定域中。其中,操作數(shù)可以為通用寄存器或立即數(shù)。域用于設(shè)置程序狀態(tài)寄存器中需要操作的位,32 位的程序狀態(tài)寄存器可分為4 個域:
位[31:24]為條件標(biāo)志位域,用f 表示;
位[23:16]為狀態(tài)位域,用s 表示;
位[15:8]為擴(kuò)展位域,用x 表示;
位[7:0]為控制位域,用c 表示;
該指令通常用于恢復(fù)或改變程序狀態(tài)寄存器的內(nèi)容,在使用時,一般要在MSR 指令中指明將要操作的域。
12.BIC 指令用于清除操作數(shù)1 的某些位,并把結(jié)果放置到目的寄存器中。
13.SPACE 偽指令用于分配一片連續(xù)的存儲區(qū)域并初始化為0。其中表達(dá)式為要分配的字節(jié)數(shù)。
評論