x
x

SMARTARM2200调试初体验

发布时间:2016-8-10 13:39    发布者:designapp
关键词: SMARTARM2200
去年8月购买了ZLG的SmartARM2000,因为工作的原因,一直没能抽空学习,到了春节前后终于可以抽空学习ARM了。我在互动出版社购买了一批书籍,希望能ARM快速入门并尽快提高。

开始进行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的中间件挺不错的,可以调用和学习。
本文地址:https://www.eechina.com/thread-171773-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • AOE | 时钟与时序(6/7):稳定性与精度的区别是什么?
  • AOE | 时钟与时序(3/7):什么是时钟相位?
  • AOE | 时钟与时序(4/7):频率与相位之间的关系是怎样的?
  • AOE | 时钟与时序(5/7):什么是稳定性?
  • 贸泽电子(Mouser)专区
关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表