|
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | 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 于 2007/4/3 21:51:00 发布:
~~ ..先检查下自己的问题吧老兄 |
3楼: | >>参与讨论 |
作者: VisionShow 于 2007/4/3 21:55:00 发布:
楼上 别扯了,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 于 2007/4/4 15:34:00 发布:
请周工解释一下 试验条件: 板子: CPU: LPC2220 FLASH: AM29LV160DB RAM: BANK1上两片16位SRAM凑成32位SRAM,共512K(ISSI 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 于 2007/4/4 16:24:00 发布:
别一有问题就说某某芯片不行,这样没人会帮你的。 因为这似乎是你没问题,而问题全在他人那里,这叫别人如何帮你。 |
6楼: | >>参与讨论 |
作者: VisionShow 于 2007/4/4 17:01:00 发布:
没有指望别人帮忙 我搞设计很多年了,不要认为我需要人帮忙,实话说搞设计,也没有人能帮忙,都是自己摸索的,一旦碰到问题,会有很多方式来查找问题,排除问题,确认问题,不会没有确认问题,就乱说的 |
7楼: | >>参与讨论 |
作者: HWM 于 2007/4/4 18:05:00 发布:
如果LZ确认是LPC2220的问题的话,建议直接和NXP(原PHILIPS)联系 |
8楼: | >>参与讨论 |
作者: zlgARM 于 2007/4/4 18:18:00 发布:
VisionShow 可否请您设计一个最小例程,里面只有必要的函数,请您将RAM_Test()里的语句一个一个注释掉,然后观察看门狗的失效情况,逐步缩小范围,直至找出触发故障的地方? |
9楼: | >>参与讨论 |
作者: zcq30 于 2007/4/4 20:05:00 发布:
原来是这样,现在能启动了吗? 这也是芯片的问题,看来我们得找自己的问题! |
10楼: | >>参与讨论 |
作者: luhuaren 于 2007/4/4 21:48:00 发布:
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 于 2007/4/4 21:57:00 发布:
RE 当大约32*1024也就是128K后,看门狗就不起作用了 给人的感觉是 1:程序跑飞导致看门狗没被调用,而导致系统复位(不太象) 2:程序跑飞导致看门狗没被调用,而系统没有复位 不知道是哪一种。。 |
12楼: | >>参与讨论 |
作者: 蛋蛋的老公 于 2007/4/4 23:57:00 发布:
BS一下LZ BS一下LZ,还说自己会解决问题,问题都没说清楚,别人能帮你吗? 我刚做完2220的项目,本来想看一下你的问题,结果看了半天不知你在说什么. |
13楼: | >>参与讨论 |
作者: 蛋蛋的老公 于 2007/4/5 0:04:00 发布:
羡慕LZ 不过很羡慕LZ,PHLILIPS的芯片还嫌麻烦,有得给你用就不错了,如果给你长年用台湾的,保证会给气晕.... 本人毕业多年,一直都用台系货,东家换西家,那个才叫苦!出问题都没人理. 最近有机会用LPC做了一个产品.第一次用欧美系的货,那种感觉叫做爽!资料多多,随手拿来就用..... 呵呵,LZ真是福中不知福. 安心搞搞吧,别一出问题就到处发泄,即是芯片有BUG也没方法的,也是自己选上的没得怪别人的.这是搞技术的硬道理. |
14楼: | >>参与讨论 |
作者: ayb_ice 于 2007/4/5 9:41:00 发布:
随便说说 谁也不能保证芯片没有问题.... 绝对可以保证不可能有这么多问题.... |
15楼: | >>参与讨论 |
作者: netjob 于 2007/4/5 10:19:00 发布:
以前也经常听说AVR有问题! AVR刚出来时。也经常听说AVR有问题!可现在呢? LPC-ARM 的确听说很多问题。 但要让人信服,也得拿出有力的证据啊!而且要把问题说清楚吧! 而且不能在单一块开发板上来证实。必须要有数量来证实吧! 1. LPC-ARM的 引脚排列实在是太乱!我怀疑当时那设计师喝醉酒了。 2. 大家不要太过崇拜皇家飞利浦的东西!皇家飞利浦很针对我们国家的家电产品出口到欧洲。 3. 说实在的,更希望周立功公司能转全力代理ST的东西就最好了。 4. 其实44BOX,AT91,ST7等都不错. |
16楼: | >>参与讨论 |
作者: zlg315 于 2007/4/5 22:11:00 发布:
netjob,怎么如此缺乏远见? 现在下结论还为时过早吧!请相信我的选择没有错。 * - 本贴最后修改时间:2007-4-5 22:14:10 修改者:zlg315 |
17楼: | >>参与讨论 |
作者: VisionShow 于 2007/4/5 23:32:00 发布:
向周工致歉 很抱歉,这个帖子给周工造成了一些影响,实在很对不起, 因为这个项目很急,开始启动问题耽误了一些时间,后来 碰到了看门狗问题,没有经过仔细的测试,盲目下结论是 芯片的问题,很不对,再次向周工致歉!!! |
18楼: | >>参与讨论 |
作者: high 于 2007/4/6 10:10:00 发布:
坦白讲,我用nxp的arm也碰到不少问题。 也好在,最后都能找到办法回避这些问题。(并不总是ic问题。)但很多现象是和自己经验矛盾的。 毕竟我们小工程,也不是nxp的ENGINEER,没有义务去收集证据。 |
19楼: | >>参与讨论 |
作者: 蛋蛋的老公 于 2007/4/7 22:51:00 发布:
TO楼主 --------------------------------------------- 看门狗的问题后来我解决了,是程序的问题,还想提一个问题 就是启动的问题: ISP BOOT是不是校验和为零就可以启动? --------------------------------------------- 查查DATASHEET,或者买本书看看吧..这个是全世界人都知道的事情.没看清楚就说别人有问题... 你为什么不使用ZLG的模板呢? |
20楼: | >>参与讨论 |
作者: 王紫豪 于 2007/4/8 1:33:00 发布:
道歉什么?关键是应该给自己道歉 |
|
|
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入 |
Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号 |