LPC1788在外部RAM调试总结

调试工具:MDK 4.72  JLink8
一、MDK设置
1、Target


                  图1
2.Asm

                 图2
  1处必须预定义NO_CRP,因为在LPC1788启动文件startup_LPC177x_8x.s中有如下代码

                 图3
  117-120这段代码是NXP公司的LPC1700系列的MCU特有的一段代码,其他公司的Cortex-M3 MCU的启动程序是没有这段代码的。这段代码是指定LPC1700的CRP加密级别的代码段,芯片上电后会自动读取0x02FC这一地址的值以确定加密方式,其中CRP_Key = 0xffffffff为0级加密,CRP_Key = 0x12345678为1级加密,CRP_Key = 0x87654321为2级加密,CRP_Key = 0x43218765为3级加密(最高级加密),3级加密将会禁止所有的ISP指令,也就是说,芯片将不能读写、不能擦除。
  如果在图2中的1处没有定义了NO_CRP,118-120行代码会被执行,即定义CRP_key,这会导致退出外部RAM调试时内核被锁,在MDK中的Debug Setting中无法检测到目标板;只能通过拉低P2[10]引脚后通过J_Flash软件的Target->Connect连接目标板,然后Erase Chip擦除目标板Flash,这样才能在Debug Setting中重新检测到目标板

3.Linker

                  图4

1)、如果图2中1处(使用Target对话框中的内存布局)打勾,则表示使用默认的分散加载文件生成映像文件,其内容为

                   图5
  其中图3中的地址1对应于Target对话框中Read/Only Memory Areas区内的默认存储空间的起始地址,默认为片内Flash;地址2是对应于arget对话框中Read/Write Memory Areas区内的默认存储空间的起始地址,默认为片内SRAM。如果此时图1Target对话框中的Read/Only Memory Areas和Read/Write Memory Areas区域的存储空间设置的不是默认值,则会出现编译错误。
  Link Control String中的内容为(工程名为Proj1):

                   图6
2)、如果图2中1处不打勾,并在3处选择了分散加载文件,则会按分散加载文件中的内容生成映像文件;此时Target对话框中指定的RO和RW存储空间无效。这次调试使用的分散加载文件内容为

                   图7
  将向量表和所有必须在root region中的library sections(如__main.o, __scatter*.o, __dc*.o, 和Region$$Table)放在起始地址为0x10000000,大小为0x10000的存储空间中(片内SRAM)中;将剩余的代码,读写数据和零初始化数据放大起始地址为0xA0000000,大小为0x1000000的存储空间(片外SDRAM)中。
  Link Control String中的内容如图2 ,分散加载文件名为SDRAM.sct。
3)、如果图2中1处不打勾,且3处没有选择分散加载文件,则会按2处的R/O Base和R/W Base生成映像文件;此时Target对话框中指定的RO和RW存储空间无效。
  Link Control String中的内容为(R/O Base和R/W Base如图2)

                   图8
4、Debug
这里写图片描述
                   图9
Load Application at Startup处不要打勾,在1处选择初始化命令脚本,内容为

INCLUDE MT48LC8M32LFB5.ini
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值