打印
[ZLG-ARM]

lpc2132 的FLASH调试问题!!

[复制链接]
1686|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jt4117|  楼主 | 2008-12-19 12:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zlg_ltt| | 2008-12-19 14:11 | 只看该作者

您好

找一个lpc213x的模板,什么程序也不要加,纯粹观察单步调试的情况。
之后把EasyJTAG-H再装1遍,注意选对Flash型号。

使用特权

评论回复
板凳
jt4117|  楼主 | 2008-12-19 14:21 | 只看该作者

我没有用模板的程序啊!

我没有实用分散加载。而是自己写的ro和rw地址。  程序在RAM中运行调试是正常的,都可以用。 但现在RAM空间不够了。 所以改成FLASH调试。 
在ram中调试跟在flash中调试,除了ro地址要改,还有什么其他要改的地方吗!! 求教各位

使用特权

评论回复
地板
jt4117|  楼主 | 2008-12-26 16:07 | 只看该作者

现在问题找到了!!

我将target.c中的系统时钟初始化程序放到自己的main里面设置,出现的问题。 把系统时钟初始化放到target.c里面,程序可以执行了。 
但是问题又出现了, 
void TargetResetInit(void)
{
    MEMMAP = 0x1;
         VPBDIV = 1; /*分频时钟不分频,用系统时钟 */  
    MAMCR = 0;
    MAMTIM = 1;     /* 设置存储器加速模块 */
    MAMCR = 2;    
         VICIntEnClr = 0xffffffff;
         VICVectAddr = 0;
         VICIntSelect = 0;
}
我用的是11.0592m时钟,没有使用pll,时钟分频比为1.
现在的问题是存储器加速模块如果打开,程序就无法运行。
如果禁止存储器加速模块,系统时钟跟我在ram里运行的速度快了5倍。
请问这是怎么回事啊??

使用特权

评论回复
5
jt4117|  楼主 | 2008-12-29 15:19 | 只看该作者

问题还是没有解决

我用的是11.0592M晶振,datasheet上说小于20M,将存储器加速模块MAMTIM 设置为1. 
但我设置为1时仿真时程序无法下载到flash,观察到的现象就是flash地址上全部为FF。
后来改成2后, 可以下载到flash上仿真运行, 但我在ram中仿真时设置的定时器中断服务程序的速度快了5倍。 原来1ms的定时,现在变成了0.2ms。
按理说程序已经下载到flash中了。重新上程序应该可以跑。
而我的掉电后在上电, 程序就无法运行了。 这是怎么回事啊?? 

使用特权

评论回复
6
rmbzhang| | 2009-1-1 16:44 | 只看该作者

jt4117 你好!

看了你的描述,感觉如下:
1.你可以检查下你的程序入口地址是否设置正确;
2.一般来说,如果PLL不使用,由于FLASH的速度的问题,设置存储器加速模块为最慢,当然最好还是利用PLL;
3.如果程序掉电不跑,说明你程序下正确,你可以参考周立功的模板,程序较大时最好使用分散加载文件。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

234

主题

2897

帖子

1

粉丝