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

发布者:pi26最新更新时间:2016-08-03 来源: eefocus关键字:ARM  学习进阶  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的中间件挺不错的,可以调用和学习。

关键字:ARM  学习进阶  SMARTARM2200  调试 引用地址:ARM学习进阶(2)-SMARTARM2200调试初体验

上一篇:ARM学习进阶(3)-ARM芯片焊接
下一篇:ARM学习进阶(1)-ARM开发环境的配置

推荐阅读最新更新时间:2024-03-16 15:03

ARMLinux驱动Watch Dog Timer(看门狗)驱动分析
硬件平台:FL2440 内核版本:2.6.28 主机平台:Ubuntu 11,04 内核版本:2.6.39 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6595265 1、看门狗驱动的原理 下图是看门狗驱动的原理图 可以看出,PCLK是系统时钟,经过8位的预分频,然后再被分频(16、32、64、128)然后产生计数脉冲,进行计数,当计数器WTCNT加到0或减到0,然后产生中断,或引起系统复位。所以要隔一段时间,重置WTCNT的值,防止WTCNT减到0,称之 喂狗 。 2、驱动分析 下面是自己的驱动分析,如有理解错误,请指正 注,为了尽
[单片机]
ARMLinux驱动Watch Dog Timer(看门狗)驱动分析
arm7 力天电子lpc2148 GPIO之二单路LED控制实验
说明:力天电子的此款开发板,跟周立功的LPC2131不同,周立功的开发板上可以用跳线棒来选择是否用595驱动,周立功课本上进行GPIO输出实验——单路LED控制实验时,直接把LED接到了arm2131处理器上,如下图所示: 而力天电子的流水灯跟驱动是直接连在一起的必须使用595驱动,如下图所示: #include NXP/iolpc2148.h #define SCLK 0x01 24 #define MISO 0x01 5 #define MOSI 0x01 6 #define RCK 0x01 7 void Delayn(unsigned long n); void HC59
[单片机]
<font color='red'>arm</font>7 力天电子lpc2148 GPIO之二单路LED控制实验
基于ARM的煤矿瓦斯涌出量预测系统的设计
随着微电子技术和计算机技术的发展,嵌入式技术得到了广阔的发展空间。特别是进入20世纪90年代以来,嵌入式技术的发展和普及更为引人注目,已经成为现代工业控制、通信类和消费类产品发展的方向。在煤炭开采工业中,瓦斯是危害矿井安全生产的重要因素之一。目前的煤矿瓦斯预测系统大多是将影响瓦斯涌出的物理量如浓度、湿度、风速等发送至井上的中心管理系统中进行分析预测,预测信息难以及时反应到井下作业人员及系统,从而导致不能在第一时间作出反应。基于嵌入式的瓦斯涌出量预测系统便于在井下不同的开采区安装,对当前开采区传感器数据进行处理分析,并预测出该开采区的瓦斯涌出量信息,各个开采区之间不但彼此可以相互通信,而且可以与上位机进行实时交互。 1 总体设计  
[单片机]
基于<font color='red'>ARM</font>的煤矿瓦斯涌出量预测系统的设计
黄仁勋:ARM将埋葬传统x86 PC
自己得不到x86架构技术,NVIDIA对其恨之入骨也是情理之中。黄仁勋近日就表示,随着智能手机和平板机冲击传统x86 PC产业,ARM最终也会击垮Intel。 黄仁勋在GTC 2010大会上接受采访时,一边拿着自己的智能手机一边说:“可以预料的是,未来的个人计算机就会这么大。某天可以为之加上无线HDMI,它就变成了你的机顶盒。” 接着他又补充说:“ 未来的PC将由新的OEM厂商制造、新的经销商销售、使用新的指令集架构。ARM会在今后成为最重要的CPU架构,而且它已经是发展速度最快的处理器架构了。 ” 或许是随着基于ARM架构的Tegra 2芯片获得多家厂商订单,黄仁勋的信心也开始爆棚,但是他拒绝评
[嵌入式]
黄仁勋:<font color='red'>ARM</font>将埋葬传统x86 PC
arm系列知识框架
【ARM编程模型】 硬件: 电路原理图 软件: 体系结构, 指令集, 寄存器组 【ARM编程技术】 汇编/C语言 编译, 链接, 烧写和调试 windows: MDK linux : gcc 【ARM接口编程】 电路原理图 datasheet ------ 裸机程序(不带操作系统,直接操作硬件) 中断技术 初始化程序 【 ARM基础知识】 1. 冯·诺依曼结构特点: 采用二进制表示数据和程序 事先存储程序 利用控制流来驱动程序 五大部件 2. CPU = CU + ALU CPU: 解释并执行指令的功能部件 CU: 译码并发出各种控制信号 ALU: 运算 3. 常见
[单片机]
ARMLinux驱动移植RTC(实时时钟)移植
硬件平台:FL2440 内核版本:2.6.28 主机平台:Ubuntu 11.04 内核版本:2.6.39 原创作品,转载请标明出处http://blog.csdn.net/yming0221/article/details/6584285 首先修改内核源码/arch/arm/mach-s3c2410/mach-smdk2410.c 添加红色字体部分 static struct platform_device *smdk2410_devices __initdata = { &s3c_device_usb, &s3c_device_lcd, &s3c_device_wdt, &s3c_device_i2c,
[单片机]
ARMLinux驱动移植RTC(实时时钟)移植
智能电表抄表系统用ARM7 LPC2148的设计方案
本文主要介绍了基于ARM7 LPC2148便携式抄表器的硬件设计方案与电路,详细分析了RS232接口电路;红外通讯接口电路;USB接口电路;LCD接口电路等设计方案。 自动抄表系统(Automatic Meter Reading System,AMRS)是一种不需要人员到达现场就能完成抄读用户用电量的智能化管理系统,近年来,这一技术在国内外应运而生,而发展非常迅速,他的最终目的是自动、集中、定时地抄录各用户的用电量,这对于提高电力部门的管理水平和经济效益有着十分重要的意义。 在自动抄表系统中,除了使用RS485总线、电力线载波或电话线进行数据通讯外,有些时候需要工作人员到现场进行数据采集,便携式抄表器作为十分便捷的现场抄表
[单片机]
智能电表抄表系统用<font color='red'>ARM</font>7 LPC2148的设计方案
ARM9远程图像无线监控系统
  在嵌入式领域,ARM9系列微处理器在高性能和低功耗方面提供了最佳的性能,因此选用ARM9嵌入式处理器S3C2440设计实现了一个远程图像光线监控系统通过这个系统,可以远在千里之外控制一个摄像机进行图像采集并回传。如果这个摄像机有一个485接口的云台,还可以通过互联网远程控制摄像机的取景角度、镜头拉伸、聚焦等功能.   除了获取图像数据.系统还提供了多路开关控制和数据采集功能,可以连接温度、湿度等各类传感器和控制红外夜视灯等其他外部设备的开关状态。最后,通过GPRS或CDMA无线通信模块及Internel互联网将数据传至任何地方   1 系统设计   本系统采用三星公司的S3C2440嵌入式处理器和arm-linux2.4
[单片机]
<font color='red'>ARM</font>9远程图像无线监控系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved