您的位置 首页 FPGA

ARM学习进阶(2)-SMARTARM2200调试初体验

去年8月购买了ZLG的SmartARM2000,因为工作的原因,一直没能抽空学习,到了春节前后终于可以抽空学习ARM了。我在互动出版社购买了一批书籍,希望能ARM快速入门并尽快提高。开始进

  上一年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的中间件挺不错的,能够调用和学习。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/115172.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部