[ZLG-ARM] 决定暂时让LPC2368隐居深山野岭,等他“修炼成仙”才让他重

[复制链接]
14828|72
 楼主| 汽车电子 发表于 2007-1-22 15:34 | 显示全部楼层

boy123那个例程是在网上下载的吧,所有内设功能模块都有的

   网站我忘了,我很久之前就下载了
hotpower 发表于 2007-1-22 18:22 | 显示全部楼层

boy123个的程序少很多文件,不能编译

  
 楼主| 汽车电子 发表于 2007-1-22 19:44 | 显示全部楼层

LPC2368的一致性非常差呀

&nbsp;&nbsp;&nbsp;一样的程序,写进两个一样的板子,执行效果是不一样的<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;一个快一个慢,一个没那么稳定
violit 发表于 2007-1-22 20:41 | 显示全部楼层

谢谢~~

今天发现了问题:<br />对于LPC2132这么写没有问题:<br />#define&nbsp;&nbsp;&nbsp;&nbsp;IRQ_UART0&nbsp;&nbsp;&nbsp;&nbsp;6<br />&nbsp;&nbsp;VICVectAddr4&nbsp;&nbsp;=&nbsp;(int32)int_serial0;<br />&nbsp;&nbsp;VICVectCntl4&nbsp;&nbsp;=&nbsp;0x20|IRQ_UART0;<br />&nbsp;&nbsp;VICIntEnable&nbsp;|=&nbsp;1&lt&ltIRQ_UART0;<br /><br />对于LPC2364要改为这样才能正确执行中断:<br />&nbsp;&nbsp;VICVectAddr6&nbsp;&nbsp;=&nbsp;(int32)int_serial0;<br />&nbsp;&nbsp;VICVectCntl6&nbsp;&nbsp;=&nbsp;0x20|IRQ_UART0;<br />&nbsp;&nbsp;VICIntEnable&nbsp;|=&nbsp;1&lt&ltIRQ_UART0;
wangshujun 发表于 2007-1-22 21:09 | 显示全部楼层

看看,lpc23xx的头文件,是不是增加了定义

  
boy123 发表于 2007-1-22 21:44 | 显示全部楼层

重新再上串口的程序。。

不好意思,,下午搞错了。<br />12M晶振,115200波特率&nbsp;80%会出错。<br />57600时不会。。怪事。。我现在只是跑跑相关的硬件看看是否正常。接着是网络。。。<br /><br />是从网上下载的。<br /> <br /> 相关链接:<a href='https://bbs.21ic.com/upfiles/img/20071/2007122214344115.rar'>https://bbs.21ic.com/upfiles/img/20071/2007122214344115.rar</a>
soso 发表于 2007-1-22 23:04 | 显示全部楼层

关注

  
 楼主| 汽车电子 发表于 2007-1-23 00:03 | 显示全部楼层

是的,有32个中断,对应32个中断向量寄存器

&nbsp;&nbsp;&nbsp;UART的波特率&nbsp;115200是没问题的,关键是波特率发生器的输入频率要算对
lpc2000 发表于 2007-1-23 02:02 | 显示全部楼层

申请一个yahoo账号,然后去这里申请加入

http://tech.groups.yahoo.com/group/lpc2000/
XZL 发表于 2007-1-23 09:54 | 显示全部楼层

violit

应该是中断向量设置的问题,我遇到过
 楼主| 汽车电子 发表于 2007-1-23 17:50 | 显示全部楼层

我把LPC236x的内部功能模块的驱动放在网上了

&nbsp;&nbsp;&nbsp;http://www.shawyoo.com&nbsp;下载中心一栏,驱动来源于网上,未作修改
violit 发表于 2007-1-23 18:34 | 显示全部楼层

感谢汽车的资料`~

  
wangshujun 发表于 2007-1-24 09:02 | 显示全部楼层

236x支持波特率的小数分频,理论上波特率可以很精确

12M晶振,115200波特率&nbsp;80%会出错。<br />加上小数分频就应该好了<br />
violit 发表于 2007-1-24 15:51 | 显示全部楼层

是的~~尽量使用11.0592这类的晶振~~

要不然就要使用小数分频~~Keil的例子就是这样的~
 楼主| 汽车电子 发表于 2007-1-24 16:00 | 显示全部楼层

没问题呀,我的板子是用12M的晶振,115200bps

&nbsp;&nbsp;&nbsp;UART之bps是允许有误差的
hotpower 发表于 2007-1-29 22:34 | 显示全部楼层

我认为在现行条件下非典估计是有效的方法

可以说我非常深入地研究了LPCARM的中断体系.<br />见菜农对23xx的中断体系的10点请教意见一文.<br />;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br />;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPC23xx非典FLASHROM的中断向量表架构<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORT&nbsp;&nbsp;VIC_Vect_Addr0<br />IRQ_Handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STMFD&nbsp;&nbsp;&nbsp;SP!,&nbsp;{R11,&nbsp;R12,&nbsp;LR};真保护R11R12,&nbsp;假保护LR(用于运算)<br />;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;VIC_Vect_Addr&nbsp;&nbsp;&nbsp;;取VICVectAddr物理地址<br />;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;[R12]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;取出取VICVectAddr内实际向量中断号(非地址)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;[PC&nbsp;,&nbsp;#-0x14c];取出取VICVectAddr内实际向量中断号(非地址)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;#0x1f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;防止32个中断序号越界,在此可再做序号越界处理(可省略)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R11,&nbsp;=VIC_Vect_Addr0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;[R11,&nbsp;R12,&nbsp;LSL&nbsp;#2];散转到用户真正的向量中断地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;[SP,&nbsp;#0x08];将中断向量地址R12写入事先保存的那个LR空间<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDMFD&nbsp;&nbsp;&nbsp;SP!,&nbsp;{R11,&nbsp;R12,&nbsp;PC};恢复R11R12,同时PC跳入中断向量地址执行<br />;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br /><br />在这个架构中,进入中断比正常的多了7条ARM指令,但它的可靠性却增加很多,我已论述了很多并经过产品实战批量生产.<br /><br />最近我在做作业,主要的目的是如何从MCU向ARM过渡.最终我首选了LPC213x/210x系列.<br /><br />被菜农这么一搞,实在不象话---因为最后ARM比MCU更简单和好用.<br /><br />通过这个架构,融合了MCU的多中断向量和单中断向量等特点,做到了像PIC的<br />单中断向量架构的可靠且比其散转迅速,又不失多中断向量的功能明确性.<br /><br />汽车电子说&quot;中断不稳定&quot;我不太明白...<br />但是我敢肯定菜农的拦截方式肯定可靠,虽然速度有点损失,但安全和速度选择其一时,前者估计是多数人的选择.<br /><br />ARM的指令系统非常完美,这是一般MCU和DSP都不如的,他们都要在中断中保护大量的现场数据,而ARM要开销的少得多.<br /><br />难道MCU的多字节指令集和低速我们都能宽容,那么菜农多7条ARM指令就不对吗???<br /><br />中断向量表在RAM中可靠还是在FLASH中更可靠这个问题没意思去争论,只能通过事实来说话.<br />就如一个行业旗手的一位总工不听菜农的意见,将海量数据存放在RAM中用电池维持掉电后的数据不丢失.<br />由于每天必须开关机一次,维持约10个小时.(电池的容量肯定没问题)<br />当产品使用后且在干扰强烈的环境下,其惨状我就不列举了~~~<br /><br />我当初对他说:我们不能像书本上设计产品那样,我们必须考虑安全可靠.<br />但得到的是:&quot;你们农民知道个什么???我们的产品就只差做到联合国了&quot;...<br />哈哈~~~说笑了,原话当然不会是这样,但傲慢的劲头是十足的~~~<br /><br />最后~~~只能后悔没听老农的真心告白~~~
 楼主| 汽车电子 发表于 2007-1-30 00:54 | 显示全部楼层

我很早之前就加了这段,但效果还是一样

;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LPC23xx非典FLASHROM的中断向量表架构<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMPORT&nbsp;&nbsp;VIC_Vect_Addr0<br />IRQ_Handler&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STMFD&nbsp;&nbsp;&nbsp;SP!,&nbsp;{R11,&nbsp;R12,&nbsp;LR};真保护R11R12,&nbsp;假保护LR(用于运算)<br />;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;VIC_Vect_Addr&nbsp;&nbsp;&nbsp;;取VICVectAddr物理地址<br />;//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;[R12]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;取出取VICVectAddr内实际向量中断号(非地址)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;[PC&nbsp;,&nbsp;#-0x14c];取出取VICVectAddr内实际向量中断号(非地址)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AND&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;#0x1f&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;防止32个中断序号越界,在此可再做序号越界处理(可省略)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R11,&nbsp;=VIC_Vect_Addr0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;[R11,&nbsp;R12,&nbsp;LSL&nbsp;#2];散转到用户真正的向量中断地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;R12,&nbsp;[SP,&nbsp;#0x08];将中断向量地址R12写入事先保存的那个LR空间<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LDMFD&nbsp;&nbsp;&nbsp;SP!,&nbsp;{R11,&nbsp;R12,&nbsp;PC};恢复R11R12,同时PC跳入中断向量地址执行
 楼主| 汽车电子 发表于 2007-1-30 00:57 | 显示全部楼层

也试过

&nbsp;&nbsp;直接取VICVectAddr地址的内容,还是一样
jola 发表于 2007-1-30 10:09 | 显示全部楼层

那里有lpc2368的开发板卖

如题&nbsp;
 楼主| 汽车电子 发表于 2007-1-30 10:56 | 显示全部楼层

在楼顶就说到了:中断后常会复位

&nbsp;&nbsp;&nbsp;不是丢中断或中断错位。<br /><br />&nbsp;&nbsp;&nbsp;不知哪里有“机关”,不确定是K编译的问题还是CPU的问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部