登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

向周工道歉!!!

作者:VisionShow 栏目:ARM技术
向周工道歉!!!
2220,一开始碰到不能启动的问题,后来碰到看门狗的问题。
看门狗不能够正确的复位,真是无招了.....

看门狗的问题后来我解决了,是程序的问题,还想提一个问题
就是启动的问题: ISP BOOT是不是校验和为零就可以启动?
我的程序很怪,非要这样才能启动:
.text
.align 4
.GLOBAL _start
.GLOBAL Reboot

_start:
  B      SystemReset
  B      SystemReset
  B      SystemReset
  B      SystemReset
  LDR    PC, DataAbort
  .LONG  0xA3400FF2
  LDR    PC,  [PC, #-0xFF0]
  B      SystemReset

DataAbort:
.LONG    0x80000024

SystemReset:
  LDR    R0,     =0xFFFFF014       @关闭所有中断
  LDR    R1,     =0xFFFFFFFF
  STR    R1,     [R0]

  MRS    R0,     CPSR
  ORR    R0,     R0, #0x80
  MSR    CPSR,   R0

  LDR    R0,     =0xE0000000
  MOV    R1,     #0
  STR    R1,     [R0]

  LDR    R0,     =0xE002C014
  LDR    R1,     =0x0F814920
  STR    R1,     [R0]

  LDR    R0,     =0xFFE00000
  LDR    R1,     =0x1000FFEF
  STR    R1,     [R0]

  LDR    R0,     =0xFFE00004
  LDR    R1,     =0x2000FFEF
  STR    R1,     [R0]

  LDR    R0,     =0xFFE00008
  LDR    R1,     =0x0000FFEF
  STR    R1,     [R0]

  LDR    R0,     =0xFFE0000C
  LDR    R1,     =0x00002400
  STR    R1,     [R0]

  MSR    CPSR_c, #0xD2
  LDR    SP,     =0x40010000

  MSR    CPSR_c, #0xD3
  LDR    SP,     =0x4000E000

  LDR    R0,     =0x80000000
  MOV    R1,     #0x40000000
  MOV    R2,     #0xC000
CopyProgram:
  LDR    R3,     [R0], #4
  STR    R3,     [R1], #4
  SUBS   R2,     R2,   #4
  BNE    CopyProgram

  LDR    R0,     =0xE01FC040
  MOV    R1,     #2
  STRB   R1,     [R0]
  
  MRS    R1,     CPSR
  BIC    R1,     R1, #0x80
  MSR    CPSR,   R1

  LDR    R0,     DataAbort
  LDR    R1,     =SystemReset
  STR    R1,     [R0]

  LDR    PC,     =Startup

Reboot:
  LDR    PC,     =0x80000000


* - 本贴最后修改时间:2007-4-5 23:23:25 修改者:VisionShow

2楼: >>参与讨论
Swd21ic
~~
..先检查下自己的问题吧老兄

3楼: >>参与讨论
VisionShow
楼上

别扯了,PHILIPS的芯片问题就是很多,下面是一段程序,接收到:ROOT_UPDATE可以复位成功,
接收到ROOT_FONTSET就不行了,这种问题会是什么问题,很显而易见的了。。。
void CommitData(BYTE *buffer,DWORD size, PDeviceInfo from)
{
  int i;
  DWORD dwSize;
  SWITCH (((PRoot)buffer)->id) {
    case ROOT_UPDATE:
      watchdog_clk();
      UpdateProgram((WORD *)(buffer+sizeof(TRoot)),size-sizeof(TRoot));
      SendCommand(PKC_NOTIFY,0x00010001,from);
      while (1);
    case ROOT_FONTSET:
      watchdog_clk();
        SendCommand(PKC_NOTIFY,0x00010001,from);
      while (1);
  }
}

4楼: >>参与讨论
VisionShow
请周工解释一下

试验条件:
板子:
CPU:    LPC2220
FLASH:  AM29LV160DB
RAM:    BANK1上两片16位SRAM凑成32位SRAM,共512KISSI  12816)

当执行一次:RAM_TEST后看门狗将不起作用, 下面两个函数顺序执行就完蛋了
void RAM_TEST(void)
{
  int i;
  volatile DWORD *RAM=(DWORD *)0x81000000;
  for (i=0; i<64*1024; i++)  //当大约32*1024也就是128K后,看门狗就不起作用了
  {
    *RAM=0xAAAAAAAA;
    if (*RAM!=0xAAAAAAAA)
    {
      uart_Write("SRAM TEST Failed\r\n", 18, NULL);
      uart_Write(RAM, 4, NULL);
      return;
    }
    RAM++;
  }
  uart_Write("SRAM TEST OK\r\n", 14, NULL);
}
void watchdog_TEST(int iType)
{
  watchdog_clk();
  RAM_TEST();
  SWITCH (iType){
    case ROOT_UPDATE:
      while (1);
    case ROOT_FONTSET:
      while (1);
  }
}


5楼: >>参与讨论
HWM
别一有问题就说某某芯片不行,这样没人会帮你的。
因为这似乎是你没问题,而问题全在他人那里,这叫别人如何帮你。

6楼: >>参与讨论
VisionShow
没有指望别人帮忙
我搞设计很多年了,不要认为我需要人帮忙,实话说搞设计,也没有人能帮忙,都是自己摸索的,一旦碰到问题,会有很多方式来查找问题,排除问题,确认问题,不会没有确认问题,就乱说的


7楼: >>参与讨论
HWM
如果LZ确认是LPC2220的问题的话,建议直接和NXP(原PHILIPS)联系
 
8楼: >>参与讨论
zlgARM
VisionShow
  可否请您设计一个最小例程,里面只有必要的函数,请您将RAM_Test()里的语句一个一个注释掉,然后观察看门狗的失效情况,逐步缩小范围,直至找出触发故障的地方?

9楼: >>参与讨论
zcq30
原来是这样,现在能启动了吗?
这也是芯片的问题,看来我们得找自己的问题!

10楼: >>参与讨论
luhuaren
RE
void RAM_TEST(void)
{
  int i;
  volatile DWORD *RAM=(DWORD *)0x81000000;
  for (i=0; i<64*1024; i++)  //当大约32*1024也就是128K后,看门狗就不起作用了
  {
    *RAM=0xAAAAAAAA;
    if (*RAM!=0xAAAAAAAA)
    {
      uart_Write("SRAM TEST Failed\r\n", 18, NULL);
      uart_Write(RAM, 4, NULL);
      return;
    }
    RAM++;
  }
  uart_Write("SRAM TEST OK\r\n", 14, NULL);
}


楼主说的不起作用是什么意思?

11楼: >>参与讨论
luhuaren
RE
当大约32*1024也就是128K后,看门狗就不起作用了

给人的感觉是
1:程序跑飞导致看门狗没被调用,而导致系统复位(不太象)
2:程序跑飞导致看门狗没被调用,而系统没有复位

不知道是哪一种。。

12楼: >>参与讨论
蛋蛋的老公
BS一下LZ
BS一下LZ,还说自己会解决问题,问题都没说清楚,别人能帮你吗?
我刚做完2220的项目,本来想看一下你的问题,结果看了半天不知你在说什么.

13楼: >>参与讨论
蛋蛋的老公
羡慕LZ
不过很羡慕LZ,PHLILIPS的芯片还嫌麻烦,有得给你用就不错了,如果给你长年用台湾的,保证会给气晕....
本人毕业多年,一直都用台系货,东家换西家,那个才叫苦!出问题都没人理.
最近有机会用LPC做了一个产品.第一次用欧美系的货,那种感觉叫做爽!资料多多,随手拿来就用.....
呵呵,LZ真是福中不知福.
安心搞搞吧,别一出问题就到处发泄,即是芯片有BUG也没方法的,也是自己选上的没得怪别人的.这是搞技术的硬道理.


14楼: >>参与讨论
ayb_ice
随便说说
 谁也不能保证芯片没有问题....
绝对可以保证不可能有这么多问题....

15楼: >>参与讨论
netjob
以前也经常听说AVR有问题!
AVR刚出来时。也经常听说AVR有问题!可现在呢?

LPC-ARM 的确听说很多问题。
但要让人信服,也得拿出有力的证据啊!而且要把问题说清楚吧!
而且不能在单一块开发板上来证实。必须要有数量来证实吧!

1. LPC-ARM的 引脚排列实在是太乱!我怀疑当时那设计师喝醉酒了。
2. 大家不要太过崇拜皇家飞利浦的东西!皇家飞利浦很针对我们国家的家电产品出口到欧洲。
3. 说实在的,更希望周立功公司能转全力代理ST的东西就最好了。
4. 其实44BOX,AT91,ST7等都不错.

16楼: >>参与讨论
zlg315
netjob,怎么如此缺乏远见?
     现在下结论还为时过早吧!请相信我的选择没有错。

* - 本贴最后修改时间:2007-4-5 22:14:10 修改者:zlg315

17楼: >>参与讨论
VisionShow
向周工致歉
很抱歉,这个帖子给周工造成了一些影响,实在很对不起,
因为这个项目很急,开始启动问题耽误了一些时间,后来
碰到了看门狗问题,没有经过仔细的测试,盲目下结论是
芯片的问题,很不对,再次向周工致歉!!!

18楼: >>参与讨论
high
坦白讲,我用nxp的arm也碰到不少问题。
也好在,最后都能找到办法回避这些问题。(并不总是ic问题。)但很多现象是和自己经验矛盾的。

毕竟我们小工程,也不是nxp的ENGINEER,没有义务去收集证据。

19楼: >>参与讨论
蛋蛋的老公
TO楼主
---------------------------------------------
看门狗的问题后来我解决了,是程序的问题,还想提一个问题
就是启动的问题: ISP BOOT是不是校验和为零就可以启动?
---------------------------------------------

查查DATASHEET,或者买本书看看吧..这个是全世界人都知道的事情.没看清楚就说别人有问题...
你为什么不使用ZLG的模板呢?

20楼: >>参与讨论
王紫豪
道歉什么?关键是应该给自己道歉
 
参与讨论
昵称:
讨论内容:
 
 
相关帖子
请问周公:没有外部的ram,如何设置men_a
笔记本没有并口,如何使用EASYJTAG?
EasyJTAG 调试时出现得问题(求救周立功,急)
关于驱动问题,请教各位大侠
帮帮忙
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号