ARM开发
文章平均质量分 79
zz2006
努力成为ARM专家
展开
-
C语言嵌入式系统编程修炼之(一):背景篇
<br />C语言嵌入式系统编程修炼之背景篇<br /> 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力。无疑,汇编语言具备这样的特质。但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择。而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发的最佳选择。笔者在嵌入式系统项目的开发过程中,一次又一次感受到C语言的精妙,沉醉于C语言给嵌入式开发带来的便利。<br /><br /> 图1给出转载 2010-09-28 07:59:00 · 280 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之(四)屏幕操作
<br />C语言嵌入式系统编程修炼之屏幕操作<br />汉字处理<br /><br /> 现在要解决的问题是,嵌入式系统中经常要使用的并非是完整的汉字库,往往只是需要提供数量有限的汉字供必要的显示功能。例如,一个微波炉的LCD上没有必要提供显示"电子邮件"的功能;一个提供汉字显示功能的空调的LCD上不需要显示一条"短消息",诸如此类。但是一部手机、小灵通则通常需要包括较完整的汉字库。<br /><br /> 如果包括的汉字库较完整,那么,由内码计算出汉字字模在库中的偏移是十分简单的:汉转载 2010-09-28 08:01:00 · 359 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之(六)性能优化
<br />C语言嵌入式系统编程修炼之性能优化<br /> 使用宏定义<br /><br /> 在C语言中,宏是产生内嵌代码的唯一方法。对于嵌入式系统而言,为了能达到性能要求,宏是一种很好的代替函数的方法。<br /><br /> 写一个"标准"宏MIN ,这个宏输入两个参数并返回较小的一个:<br /><br /> 错误做法:<br /><br /> #define MIN(A,B) ( A <= B ? A : B )<br /><br /> 正确做法:<br /><b转载 2010-09-28 08:04:00 · 314 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之(二)软件架构篇
<br />C语言嵌入式系统编程修炼之软件架构篇<br /> 模块划分<br /><br /> 模块划分的"划"是规划的意思,意指怎样合理的将一个很大的软件划分为一系列功能独立的部分合作完成系统的需求。C语言作为一种结构化的程序设计语言,在模块的划分上主要依据功能(依功能进行划分在面向对象设计中成为一个错误,牛顿定律遇到了相对论),C语言模块化程序设计需理解如下概念:<br /><br /> (1) 模块即是一个.c文件和一个.h文件的结合,头文件(.h)中是对于该模块接口的声明;<br转载 2010-09-28 08:00:00 · 270 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之(三)内存操作
<br />C语言嵌入式系统编程修炼之内存操作<br />数据指针<br /><br /> 在嵌入式系统的编程中,常常要求在特定的内存单元读写内容,汇编有对应的MOV指令,而除C/C++以外的其它编程语言基本没有直接访问绝对地址的能力。在嵌入式系统的实际调试中,多借助C语言指针所具有的对绝对地址单元内容的读写能力。以指针直接操作内存多发生在如下几种情况:<br /><br /> (1) 某I/O芯片被定位在CPU的存储空间而非I/O空间,而且寄存器对应于某特定地址;<br /><br />转载 2010-09-28 08:00:00 · 373 阅读 · 0 评论 -
C语言嵌入式系统编程修炼之(五)键盘操作
<br />处理功能键<br /><br /> 功能键的问题在于,用户界面并非固定的,用户功能键的选择将使屏幕画面处于不同的显示状态下。例如,主画面如图1:<br /><br /> <br /> 图1 主画面<br /><br /> 当用户在设置XX上按下Enter键之后,画面就切换到了设置XX的界面,如图2:<br /><br /> <br /> 图2 切换到设置XX画面<br /><br /> 程序如何判断用户处于哪一画面,并在该画面转载 2010-09-28 08:03:00 · 418 阅读 · 0 评论