开始进行ARM理论学习,我是参考ZLG的《ARM嵌入式系统基础教程》,同时我又温习了下C51的知识,希望在ARM中学习中能把C51也灵活掌握。
接着就是用SmartARM2000开发板做实验,需要安装ARM开发环境,具体步骤可参见本人的《ARM学习进阶(1)-ARM开发环境的配置》。按配套实验教程《ARM嵌入式系统实验教程(二)》的要求完成了第二章的基础实验,由于是直接运行配套光盘的DEMO源程序,每个实验都是针对某个功能部件,所以都比较顺利。后来试着自己编了几个程序来同时实现几个不同部件功能,结果也还满意。
为了在SmartARM2000上做基于UC/OS-II的实验,还需要UC/OS-II 2.52的源代码。我找出2002年买的《嵌入式实时操作系统UC/OS-II(邵贝贝译)》配套光盘,里面正好有UC/OS-II 2.52的源代码,这样开发环境也具备了。按实验教程运行DEMO源程序,运行正常。自己也试着编写OS系统,运行基本达到预期。
用SmartARM2000开发板我进行了配套教程第2~4章的实验内容,也按自己的设想完成了多个实验,对ARM的性能有了进步的了解。但是实验中也遇到些莫名的问题至此仍然不解,ZLG的技术支持也没能给出满意的答复,希望能解惑的大侠能抽空给予解答:
(1)JP1-ISP、JP9-OUTSIDE/INSIDE、JP10-BANK0/1设置都正确的情况下,以前在外部RAM调试方式下能正常运行的程序突然不能运行了,可这程序在外部FLASH调试方式下正常运行,用LPC2294进行内部FLASH脱机运行也正常;然后某天再用SmartARM2000开发板调试时,即使在外部RAM调试方式下也能正常运行了。这样我折腾了半个多月都没弄明白,后来也是莫明其妙的恢复正常的。
(2)UC/OS-II 操作系统实验时,连续创建4个任务就运行不正常,将其中一个任务放在另一个任务中创建就都正常了。
出错的程序
:
OSTaskCreate(Task1,(void *)0, &TaskStk1[TaskStkLength-1],1);
OSTaskCreate(Task2,(void *)0, &TaskStk2[TaskStkLength-1],2);
OSTaskCreate(Task3,(void *)0, &TaskStk3[TaskStkLength-1],3);
OSTaskCreate(Task4,(void *)0, &TaskStk4[TaskStkLength-1],4);
:
正确的程序
:
OSTaskCreate(Task2,(void *)0, &TaskStk2[TaskStkLength-1],2);
OSTaskCreate(Task3,(void *)0, &TaskStk3[TaskStkLength-1],3);
OSTaskCreate(Task4,(void *)0, &TaskStk4[TaskStkLength-1],4);
:
void Task2(void *pdata)
{ :
OSTaskCreate(Task1,(void *)0, &TaskStk1[TaskStkLength-1],1);
:
}
在用SmartARM2000开发板陆续进行的调试中,我也有些心得和体会,特记录与此供大家分享:
(1)需定义向量表,配置总线(特别是PINSEL2),初始化堆栈;
(2)通讯波特率计算 UxDLM,UxDLL=Fplk/(16*baud),设置波特率时需将UxLCR的D7位-DLAB置位,退出中断前必须读取UxIIR来清除中断;
(3)外部中断有高/低电平触发和上升/下降边沿触发等不同方式,退出外部中断前要清除标识EXINT;
(4)利用工程模板建立工程后,需修改设置系统模式堆栈处的代码为“MSR CPSR_C,#0x5F”才能使能中断;
(5)ISP前需先编译生成*.HEX文件;
(6)WDT需在外部FLASH或内部FLASH下脱机运行方可启用;
(7)重映射的效果只有当MEMMAP=0x02时才能观察到;
(8)PWM在某些场合可以作为DAC使用;
(9)UC/OS-II 要合理分配任务的优先级;
(10)ZLG的中间件挺不错的,可以调用和学习。
上一篇:ARM学习进阶(3)-ARM芯片焊接
下一篇:ARM学习进阶(1)-ARM开发环境的配置
推荐阅读最新更新时间:2024-03-16 15:03
设计资源 培训 开发板 精华推荐
- 柔灵科技陈涵:将小型、柔性的脑机接口睡眠设备,做到千家万户
- 微灵医疗李骁健:脑机接口技术正在开启意识与AI融合的新纪元
- USB Type-C® 和 USB Power Delivery:专为扩展功率范围和电池供电型系统而设计
- 景昱医疗耿东:脑机接口DBS治疗技术已实现国产替代
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计