嵌入式系统目前已在军事装备、工业制造与过程控制、通信、机器人、仪器与仪表、汽车、船舶、交通管理、信息家电及家庭智能管理、消费类产品各领域普及应用,具有广阔的发展前景。在这些设备中,嵌入式系统将大有用武之地。在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。......
2025-09-30
Linux软件开发一直在Internet环境下讲行。这个环境是全球性的,编程人员来自世界各地。只要能够访问Web站点,就可以启动一个以Linux为基础的软件项目。Linux开发工作经常是在Linux用户决定共同完成一个项目时开始的。当开发工作完成后,该软件就被放到Internet站点上,任何用户都可以访问和下载它。由于这个活跃的开发环境,新的以Linux为基础的软件功能日益强大,而且呈现爆炸式的增长态势。
大多数Linux软件是经过自由软件基金会(Free Software Foundation)提供的GNU(GNU即GNU’s not UNIX)公开认证授权的,因而通常被称作GNU软件。GNU软件免费提供给用户使用,并被证明是非常可靠和高效的。许多流行的Linux实用程序如C编译器、shell和编辑器都是GNU软件应用程序。
Linux程序需要首先转化为低级机器语言即所谓的二进制代码以后,才能被操作系统执行。例如编程时,先用普通的编程语言生成一系列指令,这些指令可被翻译为适当的可执行应用程序的二进制代码。这个翻译过程可由解释器一步步来完成,或者也可以立即由编译器明确地完成。shell编程语言如BASH、TCSH、GAWK、Perl、Tcl和Tk都利用自己的解释器。用这些语言编制的程序尽管是应用程序文件,但可以直接运行。编译器则不同,它将生成一个独立的二进制代码文件然后才可以运行。
1.GNU风格
(1)函数返回类型说明和函数名分两行放置,函数起始字符和函数开头左花括号放到最左边。
(2)尽量不要让两个不同优先级的操作符出现在相同的对齐方式中,应该附加额外的括号使得代码缩进可以表示出嵌套。
(3)按照规定方式排版do-while语句:
(4)每个程序都应该以一段简短的说明其功能的注释开头。
(5)请为每个函数书写注释,说明函数是做什么的,需要哪些入口参数,参数可能值的含义和用途。如果用了非常见的、非标准的东西,或者可能导致函数不能工作的任何可能的值,应该进行特殊说明。如果存在重要的返回值,也需要说明。
(6)不要声明多个变量时跨行,每一行都以一个新的声明开头。(https://www.chuimin.cn)
(7)当一个if中嵌套了另一个if-else时,应用花括号把if-else括起来。
(8)要在同一个声明中同时说明结构标识和变量或者结构标识和类型定义(typedef)。先定义变量,再使用。
(9)尽量避免在if的条件中进行赋值。
(10)请在名字中使用下划线以分割单词,尽量使用小写;把大写字母留给宏和枚举常量,以及根据统一惯例使用的前缀。例如,应该使用类似ignore_space_change_flag的名字;不要使用类似iCantReadThis的名字。
2.Linux内核编程风格
(1)Linux内核缩进风格是8个字符。
(2)Linux内核风格采用K&R标准,将开始的大括号放在一行的最后,而将结束的大括号放在一行的第一位。
(3)命名尽量简洁。不应该使用诸如ThisVariableIsATemporaryCounter之类的名字。应该命名为tmp,这样容易书写,也不难理解。但是命名全局变量,就应该用描述性命名方式,例如应该命名“count_active_users()”,而不是“cntusr()”。本地变量应该避免过长。
相关文章
嵌入式系统目前已在军事装备、工业制造与过程控制、通信、机器人、仪器与仪表、汽车、船舶、交通管理、信息家电及家庭智能管理、消费类产品各领域普及应用,具有广阔的发展前景。在这些设备中,嵌入式系统将大有用武之地。在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。......
2025-09-30
S5PV210处理器中采用的是异步串行通信方式。异步串行通信通常以字符为单位组成字符帧传送。在串行通信中,数据位的发送和接收分别由发送时钟脉冲和接收时钟脉冲进行定时控制。......
2025-09-30
嵌入式系统设计与开发工作中,软件工作量约占全部工作量的80%,其中测试和验证部分的工作量占软件工作量的70%。图1.6嵌入式系统设计与开发流程1.需求分析分析用户的需求:产品的功能、性能、价格、体积、功耗等。嵌入式系统(实现)编程:选择硬件、操作系统、编程语言以及开发工具,编写程序。......
2025-09-30
嵌入式系统的发展大致经历了嵌入式微控制器、嵌入式微处理器和嵌入式数字信号处理器、嵌入式片上系统和以Internet为标志的嵌入式系统等阶段。嵌入式系统的出现最初是基于单片机的,这一阶段的嵌入式系统硬件是单片机,软件停留在无操作系统阶段,采用汇编语言实现系统的功能。第四阶段是以Internet为标志的嵌入式系统。......
2025-09-30
2.开发模式嵌入式系统本身不具备自举开发能力,即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示波器等。表1.2常用嵌入式开发工具......
2025-09-30
每组GPIO端口都有两类控制寄存器,分别工作在正常模式和掉电模式。S5PV210处理器工作在正常模式下时,正常寄存器工作;进入掉电模式时,所有配置和上拉/下拉控制由掉电寄存器控制。用于控制GPIO的引脚功能,向该寄存器写入数据来设置相应引脚是输入/输出,还是其他功能。GPIO数据寄存器GPxnDAT。GPIO上拉/下拉寄存器GPxnPUD,用于控制每个端口上拉/下拉电阻的使能/禁止。......
2025-09-30
Thumb不是一个完整的体系结构,不能指望处理器只执行Thumb指令而不支持ARM指令集。因此,Thumb指令只需要支持通用功能,必要时可以借助完善的ARM指令集。Thumb指令集与ARM指令集的区别一般有如下几点:●转指令。Thumb数据处理指令是对通用寄存器进行操作,在大多数情况下,操作的结果须放入其中一个操作数寄存器中,而不是第3个寄存器中。在Thumb状态下,单寄存器加载和存储指令只能访问寄存器R0~R7。......
2025-09-30
加载/存储指令用于在寄存器和存储器之间传输数据,Load指令用于将存储器中数据传输到寄存器中,Store指令用于将寄存器中的数据保存到存储器中。例如:2.STR指令STR{cond}
2025-09-30
相关推荐