历史上的今天
返回首页

历史上的今天

今天是:2025年02月04日(星期二)

2021年02月04日 | ARM的综合实验设计

2021-02-04 来源:eefocus

一、实验目的

学习做一个复杂的应用程序的方法和程序结构,结合应用以前16 次实验所学到的知识,编写一个比较综合的应用。


二、实验内容

用一个列表框作为主菜单,通过键盘可以选择功能,主要的功能有:显示bmp 文件、设定系统时间、USB 下载。同时,使用文本框控件作为系统的一个状态条,显示提示信息和系统的时间。


三、预备知识

1、用ARM SDT 2.5 集成开发环境,编写和调试程序的基本过程。

2、基于操作系统的应用程序的框架结构。

3、会使用Source Insight 3 编辑C 语言源程序

4、会使用消息循环响应键盘消息

5、会使用文本框控件和列表框控件

6、会编写通过USB 连接下载的程序

7、会控制系统的时钟和多线程

8、会使用系统的绘图函数显示图片

9、会使用系统的文件相关函数列出指定类型的文件


四、实验设备及工具(包括软件调试工具)

硬件:ARM 嵌入式开发板、用于ARM7TDMI 的JTAG 仿真器、PC 机Pentumn100 以上

软件:PC 机操作系统win98、ARM SDT 2.51 集成开发环境、仿真器驱动程序、SourceInsight 3.0、超级终端通讯程序、USB 下载程序


五、实验步骤

1、在ARM SDT 2.51 中,使用实验一中创建好的模板,新建一个项目work1。把操作系统的所需要的头文件(*.h)和库文件(*.alf)加入工程中。

2、用Source Insight 3 创建一个工程,把work1 中的C 语言源文件文件加入。

3、打开Main.c 文件,在Main_Task 任务中添加代码,使系统启动的时候,创建一个列表框作为系统的选项菜单,添加三个字符串到列表框中,作为功能菜单,包括:绘制图形、设置时间、USB 下载。创建两个文本框,其中一个作为系统的状态提示,另一个用来显示系统时间。启动消息循环, 响应键盘消息(OSM_KEY)和列表框被改变的消息(OSM_LISTCTRL_SELCHANGE)。Main_Task 的流程如图17-1 所示。



4、在Main_Task 任务中再创建一个新的任务,此任务负责实时的更新显示系统的时间.


其流程图如图:17-2 所示。



提示:

1、用CreateTextCtrl 函数创建文本框,SetTextCtrlText 函数设置文本框中的内容。

2、用CreateListCtrl 函数创建列表框,ReLoadListCtrl 函数装载一组字符串。

3、使用OSTaskCreate 来创建系统任务。在uCOS-II 系统中,任务的优先级是不能相同的。比如:Main_Task 任务的优先级是12,Key_Scan_Task 任务的优先级是56。目前使用的uCOS-II 的版本只支持64 个任务,包括,还有8 个系统任务,用户可以使用的任务是56 个。创建任务的时候,需要选择合适的任务优先级(比如:14)。

4、通过SetTextCtrlEdit 函数设置文本框是否处于编辑状态,使用TextCtrlDeleteChar和AppendChar2TextCtrl 函数在文本框中删除和追加字符。

5、键盘消息是OSM_KEY,列表框选择改变消息是OSM_LISTCTRL_SELCHANGE

6、使用Rtc_IsTimeChange 函数,判断系统的时钟对应的某一位是否改变。用Rtc_Format 格式化系统的时钟格式得到Unicode 字符串,可以方便的显示到文本框控件里。

7、可以使用一个指针函数的数组装载系统的各个功能(绘制图形、设置时间、USB下载)函数,便于管理。如下面的程序所示:

void *MainFunction[]={(void*)OnDrawBmp,(void*)OnSetTime,(void*)OnUsb_Download};

其中,OnDrawBmp,OnSetTime,OnUsb_Download 函数就是对应的绘制图形、设置时间、USB 下载功能函数。可以使用如下程序所示的方法调用指定序列的函数:

( (void (*)(void)) (MainFunction[pMainListCtrl->CurrentSel]) )();

其中,pMainListCtrl 表示指向系统主功能文本框的指针。

7、用ARM SDT 2.5 编译、下载并调试上述程序,检查运行结果

8、生成发行版本的.bin 文件,通过USB 下载到嵌入式开发板中,运行并检查输出结果。


推荐阅读

史海拾趣

高通(GENITOP)公司的发展小趣事

1964年,超霸电池的前身——金山工业集团在中国香港地区成立,最初专注于生产9伏干电池,以满足当时收音机等电子产品的需求。这一时期的超霸电池以其稳定的质量和可靠的性能迅速在市场上站稳脚跟。随着电子产品的普及,金山工业敏锐地捕捉到市场机遇,逐步扩大生产规模,为后续的发展奠定了坚实基础。

ANADIGICS公司的发展小趣事

进入90年代,超霸电池开始拓展内地市场,先后在北京、上海、广州等十多个主要城市设立销售点。与此同时,公司业务也逐步向多元化发展,除了电池生产外,还涉足电缆、汽车配线、扬声器等领域。这一时期,超霸电池推出了可循环再用的镍氢充电电池和充电器,满足了市场对环保、高效电池产品的需求,进一步巩固了其在电池行业的领先地位。

Crystalfontz America Inc公司的发展小趣事

随着产品技术的不断提升,Crystalfontz America Inc公司开始积极拓展市场。公司通过与各大电子设备制造商建立合作伙伴关系,将产品应用于嵌入式系统、机架式服务器、仪器集群等领域。同时,公司还积极参加各类行业展会和技术交流活动,提升品牌知名度,吸引更多潜在客户。这些举措有效推动了公司市场份额的扩大和业务的快速增长。

Captive Fastener公司的发展小趣事

Captive Fastener公司深知产品质量是企业生存和发展的关键。公司建立了严格的质量管理体系,从原材料采购到生产加工、产品检验等各个环节都进行严格把关。此外,公司还定期对员工进行质量意识和技能培训,确保每一道工序都符合质量标准。这些措施有效提升了公司的产品质量和客户满意度。

DRI Relays Inc公司的发展小趣事

为了满足全球客户的需求,DRI Relays Inc公司开始实施全球化战略。公司先后在亚洲、欧洲和美洲等地设立了分公司和研发中心,以便更好地了解当地市场需求和提供定制化服务。同时,公司还积极参与国际展览和交流活动,加强与全球客户的沟通和合作。这些举措不仅提高了公司的国际知名度,还为公司赢得了更多的订单和市场份额。

Clever Little Box公司的发展小趣事

Clever Little Box公司成立于1964年,当时正值电子行业的蓬勃发展时期。创始人凭借对音频和电子技术的深厚理解,以及对市场的敏锐洞察,决定成立这家公司,专注于音频和电子组件的分销。创业初期,公司面临着资金短缺、市场竞争激烈等诸多挑战,但创始人凭借坚定的信念和不懈的努力,逐渐在市场中站稳了脚跟。

问答坊 | AI 解惑

第二届恩智浦杯创新设计大赛

本帖最后由 paulhyde 于 2014-9-15 09:48 编辑 活动介绍   恩智浦半导体(NXP Semiconductors)是一家新近独立的半导体公司,由飞利浦公司创立,已拥有五十年的悠久历史,主要提供工程师与设计人员各种半导体产品与软件,为消费电子、安全应用、 ...…

查看全部问答>

集成运放中的电流源电路和差动放大电路

6集成电路运算放大器 6 .1.1集成电路运算放大器的特点 6.1.2集成运算放大电路中的电流源 6.1.3基本型差动放大器 6.1.4双电源长尾式差放 6.1.5差动电路的几种接法 6.1.6恒流源式差放…

查看全部问答>

大功率衰减器系统设计方法概述

本帖最后由 paulhyde 于 2014-9-15 09:18 编辑 衰减器的功能是能处理大功率信号且不会影响信号性能,所以在对大功率信号处理和测试时需要用到高频衰减器。尤其是一些特殊的信号,例如在商业广播和军用雷达系统中常见的超过1kW的信号来讲,在任何测 ...…

查看全部问答>

2440 ARM 的ADC驱动是和touch screen共用的吗?

2440 ARM 的ADC驱动是和touch screen共用的吗? 2440的ADC端口和touch screen端口公用一个端口,那windowsce里面是不是也可以用touch 驱动程序来读出ADC的值? 目前我在开发板的软件包里面,找不到ADC驱动,我发现触摸屏的驱动里面有ADC的代码, ...…

查看全部问答>

中嵌学院的嵌入式培训怎么样?

中嵌学院的嵌入式培训怎么样?保证就业是真的吗?就业怎么样?有在中嵌培训过的大哥大姐能回答下吗?学费太贵,农村的我想把来之不易的钱用到实处, 有知道的说下…

查看全部问答>

arm的小端模式如何转为大端模式

比如我U8 firmware_data[128];firmware赋值{0,22,1e,4d,。。。。。。。e3} U32 *ptr=(U32 *)&firmware_data[0]; 我用的arm9,读出来ptr内的数据是4d1e220格式,怎么变成02214d即大端模式?用htonl吗,怎么用? 谢谢啊…

查看全部问答>

LED灯寿命不超过12000小时?

大家都知道,LED灯采用半导体原理,其光源的寿命是很长的,可达50000h以上,然而最近和节能灯行业一位前辈交流,他却称,这种说法是不实之言,他是这样给我分析的: LED发光原理普通节能一样,都是利用稀土三基色荧光粉发光,只是激发方式不同。 ...…

查看全部问答>

f2407的AD转换

我最近在做AD转换,具体是这样的:我用电位器的电压做给定,通过AD转换,转换结果作为和定时器比较寄存器比较的依据. 可是怎样看AD转换后的结果?是不是真的电位器给定的值变化,AD结果寄存器的值就是变化的? 各位大侠帮帮我,我都困住三天了,不知道怎 ...…

查看全部问答>

请教大家,PLC技术和单片机技术是不是两个不同分支?

具体地说,在工作中,是不是做PLC技术的和做单片机技术的工作是不是很少有交集?谢谢论坛里的热心人!…

查看全部问答>

读sd卡字库显示汉字

实际意义不大,只发两张图算了…

查看全部问答>