LPC1788在外部RAM调试总结

上传人:ss****gk 文档编号:209184484 上传时间:2021-11-09 格式:DOC 页数:12 大小:991.77KB
返回 下载 相关 举报
LPC1788在外部RAM调试总结_第1页
第1页 / 共12页
LPC1788在外部RAM调试总结_第2页
第2页 / 共12页
LPC1788在外部RAM调试总结_第3页
第3页 / 共12页
LPC1788在外部RAM调试总结_第4页
第4页 / 共12页
LPC1788在外部RAM调试总结_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《LPC1788在外部RAM调试总结》由会员分享,可在线阅读,更多相关《LPC1788在外部RAM调试总结(12页珍藏版)》请在金锄头文库上搜索。

1、Operating system: | None System-Viewer File (.Sfr):-Read/Onfy Memory Areas default off-chipStartSizeROM1: | ROM2: ROM3:on-IROM1:DDDDDDOCR10000IROM2:ReadAVrite Memory Areasdefauft off-chipStartSizeNolnlt| 17RAM1:QxAOOOOOOOQxICXXXXX) | r厂 RAM2:2厂厂 RAM3:1Lon-chipr IRAM1:L厂厂 IRAM2:Qx20CXXXXX)(R8CXX)厂Sta

2、rtuprrr一、MDK设置1、Target呀Options for Target Flash*User |C/C+ |Asm|Linker |Debug |Utilities |Device Target j Output | Listing UserCode GenerationNXP founded by Philips) LPC1788为al (MHz): 112.0Use Cross-Module Optimization 厂 Use Micro LIBBig EndianOKCancelDefaultsHelp2. Asm图21处必须预定义NO_CRP,因为在LPC1788启动文件

3、startup_LPC177x_8x.s中有如下代码丄丄乙Xk/113DCDPWMO:IRQHandler;55:PWMO114DCDEEFROM_IRQHandler;56:EEPROM115116117IF:LNOT:DEF:NO_CRF118AREA| .ARM._at 0x02FC|, CODE,READONLY119CRP_KeyDCDOXFFFFFFFF120ENDIF121122123AREA|.text|z CODE, READONLY124125126;Reset Handler127128Reset HandlerFROC129EXPORTReset HandlerWEAK

4、1TMPHDTTinTr i 1*117-120这段代码是NXP公司的LPC1700系列的MCU特有的一段代码,其他公司的Cortex_M3 MCU的启动程序是没有这段代码的。这段代码是指定LPC1700的CRP加密级别的代码段,芯片上 电后会自动读取0x02FC这一地址的值以确定加密方式,其中CRP_Key = Oxffffffff为0级加密, CRP_Key = 0x12345678 为 1 级加密,CRP_Key : 0x87654321 为 2 级加密,CRP_Key : 0x43218765为3级加密(最高级加密),3级加密将会禁止所有的ISP指令,也就是说,芯片将不能读写、不 能擦

5、除。如果在阁2中的1处没有定义了 NO_CRP,118 120行代码会被执行,即定义CRP_key,这 会导致退出外部RAM调试时内核被锁,在MDK中的Debug Setting中无法检测到目标板;只能通 过拉低P210引脚后通过J_Flash软件的Target-Connect连接目标板,然后Erase Chip擦除目标板 Flash,这样才能在Debug Setting中重新检测到目标板3.Linker41)、如果图2中1处(使用Target对话框中的内存布局)打勾,则表示使用默认的分散加载文件生成映像文件,其A容为;* Scatter-Loading Description File ge

6、nerated by uVision *LR_IROM1 6x000000001 0x00080000; load region size_regionER_IROM1 0x00000000 0x00080000; load address = execution address*.o (RESET, +First)*(InRoot$Sections)ANY (+RO)9RW_IRAM1 3x100000551 0x00010000; RW data.ANY (+RW +ZI)图5其中图3中的地址1对应于Target对话框中Read/Only Memory Areas区内的默认存储空间的起 始

7、地址,默认为片内Flash;地址2是对应于arget对话框中Read/Write Memory Areas区内的默认 存储空间的起始地址,默认为片内SRAM。如果此时图ITarget对话框中的Read/Only Memory Areas 和Read/Write Memory Areas区域的存储空间设置的不是默认值,则会出现编译错误。Link Control String中的内容为(工程名为Proj 1)Linker-cpu Cortex-M3 *;* Scatter-Loading Description File generated by uVision * *LRIRAM1 0x1000

8、0000 0x00010000; load region size_regior)ER_IRAM1 0x10000000 0x00010000一*.o (RESET +First) (InRoot$Sections)LR_RA141 0XA0000000 0x01000000; load region size一regionER_RAM1 0XA0000000 0x01000000 .ANY (+RO).ozscontrol -strict -scatter Proj 1 .set ”stringv图62)、如果阁2中1处不打勾,并在3处选择了分散加载文件,则会按分散加载文件中的内容 生成映像

9、文件;此时Target对话框中指定的RO和RW存储空间无效。这次调试使用的分散加载文 件内容为将向量表和所有必须在 root region 中的 library sections (如_main.o,_scatter*.o, _dcto,和 Region$Table)放在起始地址为0x10000000,大小为0x10000的存储空间中(片内SRAM)巾; 将剩余的代码,读写数据和零初始化数据放大起始地址为0xA0000000,大小为0x1000000的存储 空间(片外SDRAM)中。Link Control String中的内容如图2 ,分散加载文件名为SDRAM.set3)、如果图2中1处不

10、打勾,且3处没有选择分散加载文件,则会按2处的R/OBase和R/W Base生成映像文件;此吋Target对话框中指定的RO和RW存储空间无效。-epu Cortex-M3 *.oa-to-base Ck10000000 -entry Ck10000000 -rw七ase CkAQOCWCX) -entry Reset JHandler -first _VectovLink Control String 中的闪容为(R/O Base 和 R/W Base 如图 2)Linker control string83、 Debug图9Load Application at Startup处不要打勾

11、,在1处选择初始化命令脚本,内容为9/* RNR */10 WDWORD(OxEOOOED9Sr 0x00000000);11 一12 /* R3AR */13 WDWORD(0XE000ED9C, OxAOOOOOOO);15 /* RASR */16 WDWORD(0 xE 0 0 OE DAO, 0x03000031);17 一18 /* SHCSR */19 / WDWORD(0xE000ED2 4, 0x00000100);20 _21 /* MPU_CONTROL */22 WDWORD(0XE000ED94, 0x00000005);23 24 /* VTOR */25 WDWO

12、RD(0 xE 0 0 OE DO 8 F 0x10000000);26 27 SF = _RDWORD(0x10000000);28 PC = -RDWORD(0x10000004);1 INCLUDE MT43LC8M32LF35ini2 /INCLUDE SST39VF160_for_download.ini3 -4 InitSDRAM();/5 /EMC_NorFlashInit();6 一7 LOAD .FlashLcd_LQO43T3DX0A.axf INCREMENTAL /8Initialize irieinoryDownload program/ Use No.O MPU/

13、Set MPU base addr/ Set MPU size and permission/ Enable memory manageirLeng fault/ Enable MPU/ Set vector table offset/ Set stack pointer/ Set program counter10-22行的关于MPU的设置-定要有,否则程序在SDRAM中的执行会出现错误,这是因为Cortex_M3 处理器在OxAOOOOOOO-OxDFFFFFFF之间的存储空间的默认访M属性是不可执行的,是不可执行区,图中第16行代码通过设置MPU region属性及容量寄存器MPURASR ,使其以OxAOOOOOOO为起始地址的 32MB(MPURASR5:l=0bll000)存储空间为共享内存(MPURASR26:24=0b011),且此区允许取指(MPURASRL28J=0)oInitSDRAM()函数在MT48LC8M32LFB5.ini中,作用为初始化外部SDRAM,其闪容为/ Power On EMC/ Enable EMC/ Config data read delay/ Little endian mode/ Set normal self refresh mode,/ norrr.al power mode, CE always HI / En

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号