第一章 嵌入式操作系统_基础知识

1.自从清华大学邵贝贝教授将Jean J.Labrosse的“µC/OS-II:the RealTime Kernel”翻译后,在国内掀起了µC/OS-II的热潮。

2.其他的嵌入式操作系统

VxWorks

VxWorks是WindRiver公司专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理,实时的系统资源及实时的任务间通信。

QNX

QNX是一款实时操作系统,由加拿大的QNX软件系统有限公司开发。

3.GNU是为了推广自由软件的精神以实现一个自由的操作系统,Linux的优良性能备受GNU的赏识,于是GNU决定采用Linus及其开发者的内核。在他们的共同努力下,Linux这个完整的操作系统诞生了。其中的程序开发共同遵循GeneralPublicLicense(GPL)协议,这是最开放也是最严格的许可协议方式,这个协议规定了源代码必须可以无偿地获取并且修改。

4.Linux的发行版本

除去非商业性组织Debian开发的Debian GNU/Linux外,美国的RedHat公司发行了Red Hat Linux,法国的Mandrake公司发行了MandrakeLinux,德国的SUSE公司发行了SUSE Linux,国内众多公司也发行了中文版的Linux,如著名的红旗Linux。

5.学习Linux的一些论坛

http://www.linuxfans.org

http://www.linuxform.net/

http://www.linuxeden.com/forum/

http://www.newsmth.net

6.在Windows操作系统下,目录结构属于分区;在Linux操作系统下,分区属于目录结构。因此,在Linux中把每一个分区和某一个目录对应,以后对这个目录的操作就是对这个分区的操作,这样就实现了硬件管理手段和软件目录管理手段的统一。这个把分区和目录对应的过程称为挂载(mount),而这个挂载在文件树中的位置就是挂载点。

7.硬盘分区

硬盘分区是针对一个硬盘进行的操作的,它可以分为主分区、扩展分区、逻辑分区。主分区就是包含操作系统启动所必需的文件和数据的硬盘分区。要在硬盘上安装操作系统,则该硬盘必须要有一个主分区,而且其主分区的数量可以是1~3个;扩展分区也就是除主分区外的分区,它不能直接使用,必须将其划分为若干个逻辑分区才可以使用,扩展分区的数量可以是0个或者1个;而逻辑分区则在数量上没有什么限制。一般情况下Window都是安装在C盘上,所以为了安装方便及安全起见,一般都把Linux安装在多余的逻辑分区上。

   swap分区:类似于Windows的虚拟内存,一般设置为内存大小的2倍。

8.分区格式和GRUB

   不同的操作系统选择了不同的格式,Windows就选择了FAT32、NTFS两种格式,但是Windows不支持Linux常见的分区格式。Linux最初使用的是Ext2格式,后来使用Ext3格式,但是它同时支持非常多的分区格式,包括XFS格式以及Windows的FAT和NTFS格式。

   GRUB是一种引导装入器(类似于在嵌入式中非常重要的bootloader)它负责装入内核并引导Linux系统,位于硬盘的起始部分。由于GRUB多方面的优越性,如今的Linux一般都默认采用GRUB来引导Linux操作系统,但事实上它还可以引导Windows等多种操作系统。

9.文件系统类型介绍

   Ext3是现在Linux常见的默认文件系统,它是Ext2的升级版本。Ext3采用了日志式的管理机制,它使文件系统具有很强的快速恢复能力,并且从Ext2转换到Ext3无须进行格式化。

   swap文件系统,在安装Linux时,交换分区是必须建立的,并且它所采用的文件系统类型必须是swap而没有其他选择。

   VFAT文件系统,在Linux中,把DOS中采用的FAT文件系统(包括FAT12、FAT16和FAT32)都称为VFAT文件系统。

   NFS文件系统是指网络文件系统,它可以很方便的实现在局域网内实现文件共享,使用NFS文件系统可以很方便的实现文件本地修改,从而免去了一次次读写flash的忧虑。

    ISO9660文件系统,这是光盘所使用的文件系统。

10.启动Linux之后就可以进入到与Windows类似的图形化界面,这个界面就是Linux图形化界面X窗口系统(简称X)的一部分。X窗口系统仅仅是Linux上的一个软件(或者也可以称为服务),它不是Linux自身的一部分。虽然X窗口系统已经与Linux整合得相当好,但毕竟还是不能保证绝对的可靠性。另外X窗口系统是一个相当耗费系统资源的软件,它会大大降低Linux系统的性能。

   当用户在命令行下工作时,不是直接同操作系统内核交互信息,而是由命令行解释器接受命令,分析后再传给相关的程序。Shell是一种Linux中的命令行解释程序,就如同Command.com是DOS下的命令解释程序一样,为用户提供使用操作系统的接口。

11.gcc的编译流程分为4个步骤:预处理,编译,汇编,链接。

预处理阶段:在该阶段,编译器将代码中的stdio.h编译进来,并且用户可以使用gcc的选项“-E”进行查看,该选项的作用是让gcc在预处理结束后停止编译过程。

gcc –E hello.c –o hello.i

.i文件为已经预处理过的C原始程序。“-o”是指目标文件,“hello.i”是-o的参数。

   编译阶段:gcc首先要检查代码的规范性、是否有语法错误等,以确定代码实际要做的工作,检查无误后,gcc把代码翻译成汇编语言。用户可以使用“-S”(大写的S)选项来进行查看,该选项只进行编译而不进行汇编,生成汇编代码。

gcc –S hello.i –o hello.s

   汇编阶段:汇编阶段是把编译阶段生成的“.s”文件转换成目标文件,读者在此使用选项“-c”就可以看到汇编代码已经转换为“.o”的二进制目标代码了。

gcc –c hello.s –o hello.o

   链接阶段:在成功编译之后,就进入了链接阶段。系统把一些库函数都放到库文件中去了,在没有特别指定时,gcc会到系统默认的搜索路径/usr/lib下进行查找,也就是链接到库函数中去,这就是链接的作用。

gcc hello.o –o hello

12.Makefile中的变量定义有两种方式:一种是递归展开方式;另一种是简单方式。递归展开方式定义的变量是在引用该变量时进行替换的,即如果该变量包含了对其他变量的应用,则在引用该变量时一次性将内嵌的变量全部展开。简单扩展型变量的值在定义处展开,并且只展开一次,因此不包含任何对其他变量的引用,从而消除变量的嵌套引用。

递归展开方式的定义格式为:VAR=var

简单扩展方式的定义格式为:VAR:=var

13.隐式规则

C编译:.c变为.o

C++编译:.cc或.C(大写)变为.o

Pascal编译:.p变为.o

Fortran编译:.r变为.o

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《基于嵌入式实时操作系统的程序设计技术 第2版》是一本关于嵌入式实时操作系统(RTOS)程序设计的技术手册。该书以嵌入式系统的特点为基础,详细介绍了使用RTOS进行程序设计的方法和技术。以下是本书的主要内容回答。 本书的第一章介绍了嵌入式系统和实时操作系统的基本概念以及它们的特点和应用领域。同时还介绍了一个实时操作系统的基本组成部分,包括任务管理器、中断服务例程和资源管理器等。 第二章详细介绍了嵌入式实时操作系统的任务管理和调度技术。其中包括任务的创建、销毁和切换等操作,以及不同的调度算法和优先级设置。 第三章讨论了嵌入式实时操作系统的中断服务例程设计和处理。该章重点介绍了中断服务例程的编写和中断的嵌套处理,以及中断的优先级和中断控制器的配置。 第四章探讨了嵌入式实时操作系统的通信和同步技术。该章介绍了进程间通信(IPC)和任务间同步的方法和技术,包括信号量、消息队列和邮箱等。 第五章介绍了嵌入式实时操作系统的定时器和时钟管理技术。其中包括定时器的配置和使用,以及时钟的同步和校准等。 第六章讨论了嵌入式实时操作系统的内存管理和存储技术。该章介绍了内存的分配和回收方法,以及存储器的管理和保护技术。 最后一章总结了全书的内容,提供了一些实际案例和应用实例,以帮助读者更好地理解和应用所学的嵌入式实时操作系统的程序设计技术。 总体而言,《基于嵌入式实时操作系统的程序设计技术 第2版》通过详细介绍了嵌入式实时操作系统的各个方面,为读者提供了一个全面了解和掌握嵌入式实时操作系统程序设计的技术手册。无论是初学者还是有经验的嵌入式系统开发者,都能从中获得宝贵的知识与经验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值