打印
[ZLG-ARM]

着急!DebugInChipFlash就变成这个样子!

[复制链接]
2355|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
GWY_ARM|  楼主 | 2007-11-25 03:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  我做的板子用LPC2214,外扩4MB FLASH和外扩256K SRAM。
使用EasyARM2200开发板(去年年中时候买的)附送光盘<<LPC2200 Project module_new>>文件夹中的工程模版,uCOS2系统。

  在外部RAM运行一切正常,烧写到外部FLASH运行也一切正常,。可是DebugInChipFlash或RelInChip出现了如下情况:
(1)系统时钟好像快了大约4倍,体现在用OSTimeDly()函数延时控制LED闪烁上的观察;
(2)I2C总线采用中断方式,可总是死在“while(I2C_end == 0);”
(3)UART0不停地往外发送数据,无论串口监控工具波特率设置为多少总是不断收到数据,多为0x00;
(4)可是别的部分正常,能正确通过UDP下发点阵字库写入外部FLASH并在LCD上正确显示,只是ping网络的时候返回时间比在外部RAM或外部FLASH运行时候快了大约4倍。

比较怀疑是LPC2200工程模版的问题,可是又不方便换成LPC2100的模版,因为有外扩RAM。 
所有程序已经全部在外部RAM调试完毕只差固化到片内FLASH这最后这一步了,求大家帮帮忙。

相关帖子

沙发
GWY_ARM|  楼主 | 2007-11-25 03:44 | 只看该作者

请大家帮忙想想解决办法

  在片内FLASH运行不正常是不是LPC2200工程模版的问题,今晚是这周第四晚熬到3点半了,明早还得去公司无偿加班,,,

使用特权

评论回复
板凳
armecos| | 2007-11-25 09:31 | 只看该作者

把bin文件发给我,

注意是bin文件(不要发HEX文件),我帮你处理一下,看看能否正常运行。
如果能正常运行,你只要购买《ecos增值包》就可以解决固化到片内FLASH问题了。
asdjf@163.com
www.armecos.com

我们以前解决过片外固化问题,想来片内固化也一样,先试试再说吧:

不能脱机运行问题的记录

使用特权

评论回复
地板
GWY_ARM|  楼主 | 2007-11-25 14:33 | 只看该作者

是不是LPC2200工程模版的问题?

  楼上的老兄,先谢谢你!由于开发时间的紧迫,至少这个项目不可能改用你的《ecos增值包》。

  现在只差程序固化到片内FLASH这最后的问题,我希望能直接得到答案。在论坛里看到还有别的人遇到类似的问题,可是都没有得到好的解决办法。

  如果真的是LPC2200工程模版的问题,我想周立功公司的人肯定可以解决的,说不定LPC2200工程模版现在已经有升级版本,因为前些时候我在深圳高交会得知致远电子推出MiniARM系列工控模块的程序非常稳定,而且致远电子的人说他们的老板就是周立功。

使用特权

评论回复
5
armecos| | 2007-11-25 14:46 | 只看该作者

这个我也不清楚,

要试过再说,因为我用GNU工具开发,所以没有遇到这个问题,不过我们肯定可以正确固化到flash里运行。《ecos增值包》只是一个第三方的方案,用户可以多一种选择。

使用特权

评论回复
6
GWY_ARM|  楼主 | 2007-11-25 23:18 | 只看该作者

现在比较怀疑mem_c.scf文件设置不当

  我是把LPC2200工程模板中的mem_c.scf文件修改成这个样子的,不知道是否正确:
ROM_LOAD 0x00000000
{
    ROM_EXEC 0x00000000
    {
        Startup.o (vectors, +First)
        * (+RO)
    }

    IRAM 0x40000040
    {
        Startup.o (MyStacks)
    }

    STACKS_BOTTOM +0 UNINIT
    {
        Startup.o (StackBottom)
    }

    STACKS 0x40004000 UNINIT
    {
        Startup.o (Stacks)
    }

    ERAM 0x81000000
    {
        * (+RW,+ZI)
    }

    HEAP +0 UNINIT
    {
        Startup.o (Heap)
    }

    HEAP_BOTTOM 0x81040000 UNINIT
    {
        Startup.o (HeapTop)
    }
}

请周工帮助看一下,,,

使用特权

评论回复
7
kukucat| | 2007-11-26 08:14 | 只看该作者

顶你

使用特权

评论回复
8
yongtree| | 2007-11-26 12:57 | 只看该作者

模板出问题的可能性不大

烧一个光盘上的例子程序试试,
你所说的速度快,是不是之前外部总线速率没有配置。模板里总线速度好像都是最低配置。时钟频率不该差别那么大吧

使用特权

评论回复
9
lpf336| | 2007-11-26 13:02 | 只看该作者

bank0 是flash还是ram?

使用特权

评论回复
10
GWY_ARM|  楼主 | 2007-11-26 15:34 | 只看该作者

问题找到了根源,可是还是未能解决。

  谢谢大家的支持!我的外部RAM和外部FLASH地址是可以跳线调换的,最终应用目的是程序固化到内部FLASH,bank0为外部FLASH(不存放代码,仅存数据),bank1为外部RAM。

  我上午打了电话到致远电子,技术支持人员说模板不会有问题,建议我把程序简化然后再测试一下。我照着做了,发现当我把Eint0中断初始化函数注释掉时就运行正常了!

  我的程序使用了6个IRQ中断:Timer0中断、Timer1中断、Eint0中断、Uart0中断、Uart1中断、I2C中断。各个中断的优先级无冲突,并且各个中断都是在TaskStart任务中初始化的,为什么把Eint0中断注释掉就正常了呢?可是在外部RAM或外部FLASH运行时是全部正常的啊。

  我试过把Eint0中断初始化函数调用位置移到main函数中,故障依旧!

  我的Eint0中断初始化函数是这样写的:

void ReadersInit(void)
{
    //EXINT0中断初始化
    PINSEL1  |= MBIT0;        // 设置管脚连接,P0.16设置为EINT0
    EXTMODE  |= MBIT0;        // 设置EINT0中断为边沿触发模式
    VICVectCntl3 = (0x20 | 0x0E);// EINT0中断通道优先级为3,并且属于向量IRQ
    VICVectAddr3 = (int)IRQ_Eint0;// 设置EINT0中断服务程序地址向量 
    EXTINT = MBIT0;        // 清除EINT0中断标志
    VICIntEnable |= MBIT14;    // 使能EINT0中断
}

使用特权

评论回复
11
GWY_ARM|  楼主 | 2007-11-26 15:41 | 只看该作者

zlg的技术支持人员怎么还不出现啊

  论坛的技术支持人员怎么还不出现啊???难道今天也放假吗?可是电话技术支持人员今天是在正常上班的啊!即使没能力解决问题也应该表个态啊!

使用特权

评论回复
12
wlq_9| | 2007-11-26 16:13 | 只看该作者

外部中断

的BUG.看errdata.设置EXTMODE的时候,会修改到VPBDIV.
你不是第一个碰到的了,还有就是外部中断设置成特定的值时,也会不正常,真不知道怎么设计的.

使用特权

评论回复
13
GWY_ARM|  楼主 | 2007-11-26 16:39 | 只看该作者

先谢谢楼上老兄的热心指导

  感谢楼上老兄的热心指导,可我还是不明白,您的意思是不是说不可以在这个初始化函数中设置EXTMODE以免修改了VPBDIV?那么EXTMODE应该在哪里修改呢?另外,您所说的“外部中断设置成特定的值时,也会不正常”这句话我没能理解。
  麻烦您进一步指导我该如何修改这段代码,这段代码是参考<<实验教程一>>105页的,现在你说有bug我真的无从下手了。

使用特权

评论回复
14
GWY_ARM|  楼主 | 2007-11-26 16:53 | 只看该作者

请求wlq_9兄,指导下我该如何修改初始化代码,,,

使用特权

评论回复
15
lyl831015| | 2007-11-26 19:03 | 只看该作者

勘误表

你可以到网上下载2214的勘误表看一下。外部中断自身是存在BUG。

使用特权

评论回复
16
GWY_ARM|  楼主 | 2007-11-26 19:08 | 只看该作者

问题解决了,再次谢谢wlq_9兄!

  原来是芯片的BUG,在得到提醒之前没料到会是这个原因,因为开发板附带的书籍没有提及到这个BUG,惊讶的是连书籍中的例子程序也没有处理这个BUG!难怪把我买的7本zlg书籍翻了个遍、把模版程序不同版本逐行比对也找不出个所以来。
  
  另外,很感谢致远电子的电话技术支持人员,非常的热心和耐心,与论坛技术支持人员摆的冷敖姿势形成鲜明的对比!

使用特权

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

本版积分规则

3

主题

26

帖子

0

粉丝