AT91SAM7S/7X ADS下调试指南
时间:09-22
来源:互联网
点击:
关于AT91SAM7X256的开发仿真,一直困扰着我们的客户,所以,我们在百特的帮助下,终于搞清楚了具体调试开发的注意事项。
我们要仿真,首先要知道内部7X256的内部RAM地址是多少,假如FLASH没有任何程序的情况下,内部的FLASH和RAM到底地址是多少,假如运行应用程序的情况下呢?
分析清楚了以上的问题,就很快可以掌握开发的步骤和仿真的环境了。
我们带着这些疑问,首先应该做的事情就是看懂DATASHEET中所说的内存影射的这个地方。
datasheet里相关的内容略
以下是我对这个芯片MAPING的理解,无非是以下这三个东西的位置问题:
[#ff0000]InternalROM,是芯片出厂就固化好的,应用厂商无须关注,地址是在0X300000。只要知道GPNVMBit2决定了是从InternalROM启动或者从InternalFlash启动。
InternalRAM,在芯片复位到执行REMAP指令前地址都是0X200000,执行REMAP后,地址就变成了0X0。
InternalFlash,这里有一个问题,要先说明,就是说应用程序运行一定要在0地址,才能运行。GPNVMBit2就决定了系统复位后,是从InternalFlash这里运行,还是从InternalROM这里运行。当然他在任何时候都有固定的地址:0X100000。那么在系统复位后直接执行REMAP命令前,InternalFlash的地址都是0X0.[/#]
分析清楚后,我们就来说仿真的事情,如果您要在FLASH里面仿真,直接将程序烧写到FLASH,就可以直接仿真了,因为任何时候,只要系统复位后,而且没有执行REMAP指令之前,FLASH的地址都是0X0。所以,即使你有中断的程序也不怕(中断向量一定要写到0X0)。
那么如何在RAM里面进行应用程序的仿真呢,就要说清楚呢,因为RAM地址只有是在REMAP之后才可以变成0X0。所以,在RAM中仿真应该是这样的,首先在编译你应用程序的时候,就要确定好了程序装载到RAM中的地址,这里是0X200000,在ADS1.2中有设置。然后,程序单步执行初始化后,就会执行REMAP指令,将0X200000的地址影射成0X0。这样,你的中断程序就可以运行呢。
对于AT91SAM7S系列也好,AT91SAM7X系列也好,执行REMAP指令,是这样执行的:
AT91C_BASE_MC->MC_RCR=1;//内存重映射
经过我们反复实验,在调试AT91SAM7X256开发板的时候,只有一个中间代理软件是最好用的,这个就是由TWENTYONE先生开发的H-JTAG软件。
我们要仿真,首先要知道内部7X256的内部RAM地址是多少,假如FLASH没有任何程序的情况下,内部的FLASH和RAM到底地址是多少,假如运行应用程序的情况下呢?
分析清楚了以上的问题,就很快可以掌握开发的步骤和仿真的环境了。
我们带着这些疑问,首先应该做的事情就是看懂DATASHEET中所说的内存影射的这个地方。
datasheet里相关的内容略
以下是我对这个芯片MAPING的理解,无非是以下这三个东西的位置问题:
[#ff0000]InternalROM,是芯片出厂就固化好的,应用厂商无须关注,地址是在0X300000。只要知道GPNVMBit2决定了是从InternalROM启动或者从InternalFlash启动。
InternalRAM,在芯片复位到执行REMAP指令前地址都是0X200000,执行REMAP后,地址就变成了0X0。
InternalFlash,这里有一个问题,要先说明,就是说应用程序运行一定要在0地址,才能运行。GPNVMBit2就决定了系统复位后,是从InternalFlash这里运行,还是从InternalROM这里运行。当然他在任何时候都有固定的地址:0X100000。那么在系统复位后直接执行REMAP命令前,InternalFlash的地址都是0X0.[/#]
分析清楚后,我们就来说仿真的事情,如果您要在FLASH里面仿真,直接将程序烧写到FLASH,就可以直接仿真了,因为任何时候,只要系统复位后,而且没有执行REMAP指令之前,FLASH的地址都是0X0。所以,即使你有中断的程序也不怕(中断向量一定要写到0X0)。
那么如何在RAM里面进行应用程序的仿真呢,就要说清楚呢,因为RAM地址只有是在REMAP之后才可以变成0X0。所以,在RAM中仿真应该是这样的,首先在编译你应用程序的时候,就要确定好了程序装载到RAM中的地址,这里是0X200000,在ADS1.2中有设置。然后,程序单步执行初始化后,就会执行REMAP指令,将0X200000的地址影射成0X0。这样,你的中断程序就可以运行呢。
对于AT91SAM7S系列也好,AT91SAM7X系列也好,执行REMAP指令,是这样执行的:
AT91C_BASE_MC->MC_RCR=1;//内存重映射
经过我们反复实验,在调试AT91SAM7X256开发板的时候,只有一个中间代理软件是最好用的,这个就是由TWENTYONE先生开发的H-JTAG软件。
- 嵌入式技术应用表面肌电信号采集仪设计(12-01)
- 使用SAM-BA和RomBoot烧写at91sam7s64(11-18)
- JLINK烧写程序 at91sam7s64下载程序(11-13)
- 基于MC35i的M2M终端设计与研究(10-22)
- AT91SAM7Sxx系列MCU Boot-Loader的设计(08-27)
- 基于DSP的声控电子记事本的设计与实现(09-22)