嵌入式Linux系统设计--第三章:嵌入式系统软件基础

第三章:嵌入式系统软件基础

violate关键字

violate是不稳定,易变的,修饰变量是为了告诉编译器不要对该变量的读取进行优化,每次使用该变量的时候必须重新访问相应的内存地址重新读取,而不是直接使用保存在寄存器中的备份。多用于:

1)并行设备的硬件寄存器

2)存在异步操作的程序(例如中断服务或者信号处理函数等)

3)多线程中被几个任务共享的变量

static关键字

1)局部变量声明为static,那么这个静态局部变量不会随着函数的退出而消失,而是维持不变,下次函数被调用的时候,这个变量值也不会被重新初始化,而是保持上次调用的值;

2)全局变量声明为static,那么该全局变量的作用域被限定在该变量所在的文件,不能被此文件之外的其它代码引用,保证全局变量的作用域限定在一个模块内部,避免多个模块中被引用引发混乱;

3)函数声明声明为static,那么该函数的作用域被限定在本模块内,一般,函数的作用域是全局的,能被其它文件中的函数调用,声明为静态函数后,则只能被模块内的其它函数调用,其它文件模块不可见。

操作系统的发展

无系统简单的批处理操作系统
(单用户单任务)
多道批处理操作系统
(单用户多任务)
微机操作系统
(Windows、Linux)
  分时操作系统
(多用户多任务) 
 网络操作系统
(C/S、P2P)
  实时操作系统分布式操作系统

常见嵌入式操作系统

1)VxWorks实时操作系统;

2)uC/OS-II 抢占式多任务的实时操作系统,不支持时间片轮转调度法,所以赋予的每个任务的优先级必须不同,可以管理64个任务,其中系统保留8个任务,应用程序最多可以使用56个任务;

3)MicrosoftWindows CE多线程,多任务的操作系统,基本内核需要至少200kB的ROM,而且在实时方面的表现也不尽如人意,对硬件要求高,耗电大,另外许可证价格高也限制了它的推广;

4)由于RTOS需占用一定的系统资源(尤其是RAM资源),只有μC/OS-II、embOS、salvo、FreeRTOS等少数实时操作系统能在小RAM单片机上运行。相对μC/OS-II、embOS等商业操作系统,FreeRTOS操作系统是完全免费的操作系统,具有源码公开、可移植、可裁减、调度策略灵活的特点,可以方便地移植到各种单片机上运行,其最新版本为9.0.0版

5)Linux是一个成熟、稳定的网络操作系统;开放源码,不需要许可证费用,成本低;易于裁剪和移植;应用软件众多,有许多公开的代码可以参考和移植,加快开发进程。

操作系统的功能

进程管理:完成资源的分配和调度,主要包括进程控制,进程调度,进程同步和进程间通信

存储器管理:完成计算机内存资源的管理和分配任务

设备管理:管理各种计算机外设(I/O设备),主要由设备驱动程序完成

文件管理:管理磁盘上的各种文件和目录

动态链接和静态链接

静态链接:在程序链接时解决外部符号的引用问题,将源程序编译后的各个目标模块与静态链接库中相关的符号定义一起装配形成一个完整的可执行文件;

动态链接:在程序链接时不直接解决外部符号引用问题,只将目标模块装配成部分可执行文件,在程序执行时,通过动态链接程序再将动态链接库与可执行文件联系起来;

动态库(共享库  *.so),动态库的代码在运行时才链接,因此一般采用动态库开发的程序代码体积小

静态库(*.a),静态库则是在程序运行前已经链接到目标程序,因此程序体积较大

生成静态链接库

gcc - c hello.c -o hello.o

ar -cqs libhello.a hello.o (库文件一般以lib开头)

生成动态链接库

gcc -c hello.c -o hello.o

gcc -shared -o libhello.so hello.o

将生成的libhello.a,libhello.so拷贝到/usr/lib或者/lib下面

查看库文件里面有哪些函数

nm libhello.o

查看可执行文件调用哪些库

ldd hello

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《嵌入式系统设计师教程(第2版)》是一本面向嵌入式系统设计师的权威教材。它由世界知名的嵌入式系统专家Jack Ganssle所著,深入浅出地介绍了嵌入式系统设计的各个方面,包括硬件设计软件设计、测试、调试、优化等。全书内容涵盖了单片机、操作系统、通讯协议、数据存储、电源管理等多个领域,可以系统地帮助读者掌握嵌入式系统设计的基本原理和实践技巧。 《嵌入式系统设计师教程(第2版)》还特别强调了实践性和综合性。作者认为,想成为一名真正合格的嵌入式系统设计师,不仅需要掌握一定的理论知识,还需要有一定的实践经验。因此,书中不仅有大量的实例和案例分析,还有丰富的开发工具和资源推荐。通过这些实践和资源,读者可以更加深入地理解嵌入式系统设计开发过程,同时也可以提高自己的实际能力和职业竞争力。 总之,《嵌入式系统设计师教程(第2版)》是一本很好的嵌入式系统设计教材,无论是从理论上还是实践上,都能够帮助读者深入了解该领域,增强自身能力和竞争力。因此,它不仅适合嵌入式系统初学者,也适合已经从事该领域一段时间的专业人士阅读,从中获取更多的经验和启示,并成为一名更出色的嵌入式系统设计师。 ### 回答2: 嵌入式系统设计师教程(第2版)是一本广泛应用嵌入式系统学习和开发的权威教材,它涵盖了嵌入式系统的硬件设计软件设计嵌入式操作系统、实时系统、控制系统等方面的知识。本书适合于嵌入式系统开发入门者和初学者,同时也适合于嵌入式系统开发专业人员和高级工程师。 嵌入式系统设计师教程(第2版)的内容丰富、逻辑清晰,从微处理器和嵌入式系统的基本概念入手,让读者逐步了解嵌入式系统的各种技术、应用开发方法。本书还附带了大量的实例,后面的案例都是基于ARM Cortex-M系列微控制器的,这让读者更具有实战经验。此外,书中还详细介绍了U-Boot和Linux等开源系统,使读者能够掌握嵌入式系统的操作系统设计应用。 总之,嵌入式系统设计师教程(第2版)是一本非常实用的嵌入式系统教材,在嵌入式系统学习和开发中起着重要的作用。无论你是初学者还是专业人士,本书都是不可或缺的参考材料。它不仅内容丰富,而且章节之间逻辑性很强,具有极高的实用性和指导性,是任何嵌入式系统开发者必读的教材之一。 ### 回答3: 《嵌入式系统设计师教程(第2版)》是一本针对嵌入式系统设计入门者的优秀教材,主要介绍了嵌入式系统的概念、基本原理、设计流程和实例等方面的内容。 该书包括嵌入式系统基础概念、硬件平台的设计嵌入式软件的编写、实时操作系统应用应用程序编写和调试等几个部分。其中,硬件平台和嵌入式软件编写是该书的重点内容。 在硬件平台的部分,该书从嵌入式系统的组成和设计原则入手,介绍了嵌入式处理器的选择、外围器件的接口设计、电源管理、高速总线的设计等方面的知识。这些内容很好地解释了嵌入式系统的基本构成要素和设计方法。 在嵌入式软件编写方面,该书涉及了汇编语言、C语言、软件设计模式等多个方面的内容。特别是在软件设计模式的部分,该书详细阐述了嵌入式系统中的状态机、事件驱动程序设计、任务级编程等实用的软件设计方法和技巧。 此外,该书还介绍了实时操作系统的基本原理、应用程序的编写和调试技巧等内容。这些内容使得读者能够全面地了解嵌入式系统设计的流程。 总体来说,该书是一本很好的嵌入式系统设计入门教材,内容详实、排版清晰,具有很高的实用性。对于想要学习嵌入式系统设计开发者来说,是一本很好的参考书。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值