李丽萍
(云南经济管理职业学院,云南昆明,650106)
基于ARM嵌入式系统的C语言编程初探
李丽萍
(云南经济管理职业学院,云南昆明,650106)
在计算机程序化的使用过程中,对于系统软件的更新速度要随着社会发展的需要进行改变,对于非智能状态下的系统软件的革新要从其本身的嵌入式进行入手,对于系统中的引导程序和相应的驱动装置进行改变,有效的加强计算机程序动态管理的进程。尤其是在C语言编程的内存管理中,使用的通信I/C等相关的通信软件。
嵌入式系统;c语言编程;ARM
计算机技术的不断演化过程中,对于计算机的操作智能化的要求也越来越高,如何将计算机技术更好的服务于大众是计算机程序设计的主要目的。对于计算机程序设计的方式是应用汇编语言和C语言,基于两种语言的不同优势进行分析研究,同时对于两者的嵌入进行分析讨论。在计算机的使用实践过程中,对于应用程序的语言使用当中,少量的使用相应的汇编程序语言,但是根据实践证明,使用关于C语言的程序的可操作性能远比汇编语言的程序更加的方便实用,因而现在对于计算机程序的编程都是使用ARM程序的平台化管理模式,并不断的完善C语言的使用范围。
C语言的使用过程中,都是含有参数和函数的表达式,其中关于main函数的变化之最多,也是在程序研究中最为关键的因素之一。在对于main函数的使用中,首先要弄清楚函数的最初原型,对于函数的表达意义要有初步的了解,并且能够合理的使用程序的改变方程式,对于main中的函数参数也有着不同的规范要求。在main可编辑函数中,agent是表示函数中参数的含义,同时也表达出函数中参数的个数,把agent最为函数参数的指导性参数值进行分析判断,可以得到函数相关数组的即时数组信息。
提到操作程序的初始化设定中,以往会使用汇编语言进行修改,包括对于软件的初始化归零处理和内存器的设置,通过在RAM的程序运行中体现出模块运行的合理性,并且对于语言的编辑实现合理的操作。在程序进入了预定的程序设计轨道过程中,main语言会自动控制程序的下一步运行,这就是所谓的嵌入式的系统模式,相关的参数会在嵌入的过程中实现交叉比对,保留原有的数据值,将不必要的和使用过的数据自动的删除,同时会对程序中产生的运行错误和编辑错位进行修改,对于找寻的错误在不能自动修改的情况下,会发生一定的程序默认设置运行。这里我们重点提到相关的汇编语言和C语言在嵌入交汇的过程中出现的语言混乱的情况。系统在自动甄别这样的情况,会对main函数重新拟定新的函数编辑式。如果这样的操作管理下还不能完成重新定义,系统函数编辑器会将函数自动的归为初始程序进行处理,用这样的方式来完成函数之间的有效串接。从而实现系统
程序在新的语言环境中的正常使用。
在计算机语言的使用管理中,对于数据的更新和函数的变化中,都会出现一些缓冲和缓存文件,在有些程序的编程过程中这些文件会出现丢失的现象。对于函数文件的储存是一项技术性的难题。在嵌入式的RAM磁盘管理当中,可以实现一定的动态数据释放,在对于存储器的功能改变上起到了关键的作用,也可以使嵌入式的系统在C语言的编辑状态下完成操作的程序化,也保证了系统的安全。
在C语言编程过程中,需求有一定的函数值的比对实现,在系统磁盘的空余空间当中,合理的分配好存储模块的函数值。在ARM平台中赋予函数值新的定义,可以直接的调用,实现了动态存储的模式。在相对的函数管理程序编辑中,将对应的函数值定义为不同的映射区间,在区间中的代码也有一定的不同,其中代码的定义包括:代码定义区域、代码数据管理区域和代码更新区域,在这三个区域之间的代码可以形成有效的联系,并且形成一定的代码分布层次。在此之中,代码的区域从最低端开始,代码的定义区域决定了数据函数在嵌入管理运行中的发展模式,对于目标函数的定义在代码的可控范围之内,形成有一定的数据交流边界,初步定好了函数的定义域范围。代码区域的终端是代码的数据管理区域,这是映射区域的直接表现模块分布区域,在嵌入系统中找寻参数的对应,对于保护缓冲和缓存数据有一定的保护作用,对于收集数据上起到了关键的作用。另外,在存储器中,不光可以使用空余的存储空间还能够使用RAM中的空间进行存放。
在基于ARM嵌入式的程序设计方案中,对于计算机硬件的驱动模式中,包含有程序的设计流程,计算机硬件的驱动模式中包含最底层的中断处理程序设计和建立在其上的驱动程序设计两个部分,其实现与具体的外围设备有关,在研究的过程中也可以看出该程序的复杂性和操作困难的特点。在这里只介绍使用c语言设计驱动程序时需要注意的一些方面,目的是在操作过程中更加的简便。对于外围硬件设备一般通过中断与CPU进行通信。中断是一种外部不同步的事件。在处理与中断相关的变量的过程中,要尤为的注意其整个改变中可能会出现的故障。一般情况下,编译器的优化选项在默认情况下打开之后,对于变量的操作,将尽量安排在存储器当中。中断服务程序常常通过改变一些全局变量来通知应用程序某个外部事件已经发生,这些全局变量是不应该被优化的。
解决的办法是在声明变量时加上相应的模块修饰符,通常以通知编译器这是一个可能被不同步事件改变的量。这个问题在理论的研究过程中看似简单,但是在实际的操作中并不完全是这样,如果一旦出现不注意的情况,在实际运行时,程序将出现错误等故障,且调试时很难定位故障。运行效率是设计驱动程序的另外一个问题。中断比较频繁的外设,其中断处理程序的速度对整个系统的性能影响是非常大的。这些模块应该直接用汇编语言编写,并尽可能优化算。
嵌入式计算机程序平台上的应用程序设计也有与Pc机上的应用程序设计不同的地方,需要格外注意。首先注意的是,凡是由需操作系统支持的标准库函数均不能使用,除非自己编写(如m-alk和m-free)。其次,由于内存资源有限,栈容量有限且不能自动扩展,使用时要格外小心。常常能见到这样的局部变量的应用:
mt buff[2048]
其目的是要申请一个2048woId(8192Bt)的缓冲区,对于嵌入式系统来说.开销过于庞大。同时,栈空间巾用于嵌套调用的升销是不可见的,在嵌套层数较多时尤其如此。一下子申请这么大的栈空间,该系统是一个大的挑战,如果操作不当还会出现整套系统崩溃不能运行的情况发生。关于堆的操作比栈更灵活,也更好控制。如果m一且110c调用成功,它将返回分配的内存块的地址,否则返回0。如果返回O.表明系统内存已经所剩不多,这时程序员可以采取别的措施来解决问题,而不至于使系统崩溃。
在本篇文章中,对于现阶段研究广泛的计算机程序进行了讨论,并从计算机的汇编语言和C语言方面入手,不断的深入介绍两者之间的必然联系,以及两种语言在衔接嵌入的过程中程序的运行方式,并且对于使用两者的计算机程序环境进行了介绍。在一些函数变换的过程中,语言的特殊性就显现出来了,同时在引入了关于ARM嵌入式的系统的过程中,更好的完善了计算机的使用程序管理,对于计算机在程序自检和验算的过程中发挥了巨大的作用,在今后的研究中,会不断的计算机中的程序化语言继续的深化和完善程序,更好的使得计算机程序服务于大众。
[1] 严蔚敏.吴伟民,数据结椅(第二版)[J].清华大学出版社.2002,12(18):340-343
[2] 金丽.包志华.陈海进基于ARM嵌入式系统的C程序优化设计方法[J].南通大学学报(自然科学版).2006 ,12(23):230-233
[3] 辛鑫.蒙建波.罗根.由C语言到APM指令及程序优化[J].单片机与嵌入式系统应.2007.11(16):190-192
Preliminary C language programming of embedded systems based on ARM
Li Liping
(Yunnan College of Business Management,YunnanKunming,650106)
In the process of using computer programming,the updating speed of system software to carry out with the development of society change,the system software of non intelligence under the condition of reform should be started from the embedded itself,the system boot program and the corresponding driving device of a change,strengthen dynamic management of computer program process effectiveness.Especially in the memory management of C language programming,use communication software communication I/C and other related.
Embedded system;The C programming language;ARM