软考-嵌入式系统设计师-笔记:嵌入式系统软件基础知识

嵌入式软件基础知识

嵌入式软件分类

  • 系统软件:

    控制和管理嵌入式系统资源,为嵌入式应用提供支持的各种软件,如设备驱动程序、嵌入式操作系统、嵌入式中间件等;

  • 应用软件:

    嵌入式系统中的上层软件,它定义了嵌入式设备的主要功能和用途,并负责与用户进行交互;

    应用软件是嵌入式系统功能的体现,一般面向于特定的应用领域,如飞行控制软件、手机软件、MP3播放软件、电子地图软件等;

  • 支撑软件:

    辅助软件开发的工具软件,如系统分析设计工具、在线仿真工具、交叉编译器、源程序模拟器和配置管理工具等;

BootLoader(引导加载程序)功能: 片级初始化;板级初始化;加载内核;

BSP(设备驱动层,板级支持包)功能: 引导加载程序BootLoader和设备驱动程序;

嵌入式操作系统基础知识

任务调度

任务由于某个事件被阻塞
等待事件完成
调度器选中了该任务执行
调度器选择了另一个任务执行
运行
等待/阻塞
就绪

信号量

信号量用来记录当前可用资源的数量,有两种不同方式:

  • 要求信号量的取值必须大于或等于0:

    如果信号量的值等于0,表示当前已没有可用的空闲资源;

    如果信号量的值大于0,则该值就代表了当前可用的空闲资源数量;

  • 信号量的取值可正可负:

    如果是正数或0,其含义与方式一是相同的;

    如果是负数,则它的绝对值就代表正在等待进入临界区的任务个数;

**P操作:**申请一个空闲的资源,把信号量的值减1;如果成功的话,就退出原语;如果失败的话,这个任务就会被阻塞起来;

**V操作:**释放一个被占用的资源,把信号量的值加1,如果发现有被阻塞的任务,就从中选择一个把它唤醒;

页面置换算法

  • 最优页面置换算法(optimal page replacement algorithm,OPT)

    对于内存中的每一个逻辑页面,计算在它的下一次访问之前,还要等待多长的时间,然后从中选择等待时间最长的那个,来作为被置换的页面;

    这个算法只是一种理想化的算法,在实际的系统中是无法实现的;

  • 最近最久未使用算法(Least Recently Used,LRU)

    从内存中选择最近最久没有被使用的那个页面,把它淘汰出局;

  • 最不常用算法(Least Frequently Used,LFU)

    选择访问次数最少的那个页面,把它淘汰出局;

  • 先进先出算法(First In First Out,FIFO)

    选择在内存中驻留时间最长的页面,把它淘汰出局;

  • 时钟页面置换算法(Clock)

嵌入式系统程序设计

常用算法设计技术

常用的算法设计技术主要有迭代法、穷举搜索法、递推法、递归法、回溯法、贪心法、分治法、动态规划法等;

中断处理过程

关中断 > 保存断点 > 识别中断源 > 保存现场和屏蔽字 > 设置新的屏蔽字 > 开中断 > 执行中断服务程序 > 关中断 > 恢复现场和屏蔽字 > 开中断 > 中断返回

猜你喜欢

转载自blog.csdn.net/Naisu_kun/article/details/124646712