PLC
登录
直播中
张桂英
7年用户
1505经验值
私信
关注
嵌入式程序开发方式有哪几种?优缺点是什么?
开启该帖子的消息推送
嵌入式程序
嵌入式
嵌入式处理器有哪些类型?
嵌入式软件由哪几部分组成?
嵌入式程序开发方式有哪几种?优缺点是什么?
回帖
(1)
郑雅颖
2021-8-30 15:02:18
目录
一、嵌入式硬件简介
二、嵌入式软件简介
目的和意义
实现方式
1.传统框架
2.加入HAL后框架
三、嵌入式编程模式
嵌入式系统
三、嵌入式程序开发方式
1.寄存器开发
2.固件库开发
总结
一、嵌入式硬件简介
嵌入式处理器分为
微处理器MPU:通用CPU演变,包含MMU,如MIPS
微控制器MCU:将CPU,存储器,中断系统,外设集成在单芯片上
数字信号处理器DSP:侧重于信号处理
片上系统SoC:主要为客户定制,可编程逻辑器件,如PLC
二、嵌入式软件简介
1.传统框架
应用程序:完成具体业务逻辑
操作系统:管理系统所有资源,提供接口函数
驱动程序:通过寄存器或库函数控制硬件模块,片内外设和外围电路
嵌入式硬件平台
2.加入HAL后框架
应用程序:完成具体业务逻辑
操作系统:管理系统所有资源,提供接口函数
硬件抽象层(HAL)
驱动程序:通过寄存器或库函数控制硬件模块,片内外设和外围电路
嵌入式硬件平台
目的和意义
引入抽象层后,屏蔽了底层硬件的变化,应用程序和操作系统不再面对具体硬件环境,而是面对HAL代表的逻辑硬件环境。减少了软件移植工作量和难度,提高软件通用性和复用性。
HAL接口函数在移植时,针对下层硬件进行修改实现,那么应用程序和操作系统的代码就可以无缝移植。
实现方式
板级支持包BSP:可通过自写BSP来对采用的外设进行封装调用
片内外设HAL:ST公司提供的库包
三、嵌入式编程模式
采用前后台编程模式
后台程序是一个无限大循环,内部有任务队列
前台程序是中断程序,通过定时中断或外部触发中断来进行任务响应;
任务:一个具有独立功能的无线循环的程序段的一次运行活动。
用户可以可以自行编写定时中断程序,定义中断标志变量,并判断和清除标志变量
嵌入式系统
系统最小内核可以完成任务管理,任务通信,时间管理,内存管理。
用户编程完成任务划分,调用操作系统的接口函数完成应用程序编写。
三、嵌入式程序开发方式
1.寄存器开发
优点:
从细节上更加清晰
程序代码简练,短小,执行效率高
缺点:
寄存器数量随外设数量增加,记忆难度增加
程序后期维护,移植相对困难
2.固件库开发
优点:
降低对硬件理解要求,容易上手
程序代码容错性好,后期方便维护
缺点:
程序代码量较大,冗余较多,运行速度相对会有影响
总结
两种方式都要了解,起码能看懂别人写的寄存器代码,重点掌握库开发。学会库函数的功能和调用方法。
目录
一、嵌入式硬件简介
二、嵌入式软件简介
目的和意义
实现方式
1.传统框架
2.加入HAL后框架
三、嵌入式编程模式
嵌入式系统
三、嵌入式程序开发方式
1.寄存器开发
2.固件库开发
总结
一、嵌入式硬件简介
嵌入式处理器分为
微处理器MPU:通用CPU演变,包含MMU,如MIPS
微控制器MCU:将CPU,存储器,中断系统,外设集成在单芯片上
数字信号处理器DSP:侧重于信号处理
片上系统SoC:主要为客户定制,可编程逻辑器件,如PLC
二、嵌入式软件简介
1.传统框架
应用程序:完成具体业务逻辑
操作系统:管理系统所有资源,提供接口函数
驱动程序:通过寄存器或库函数控制硬件模块,片内外设和外围电路
嵌入式硬件平台
2.加入HAL后框架
应用程序:完成具体业务逻辑
操作系统:管理系统所有资源,提供接口函数
硬件抽象层(HAL)
驱动程序:通过寄存器或库函数控制硬件模块,片内外设和外围电路
嵌入式硬件平台
目的和意义
引入抽象层后,屏蔽了底层硬件的变化,应用程序和操作系统不再面对具体硬件环境,而是面对HAL代表的逻辑硬件环境。减少了软件移植工作量和难度,提高软件通用性和复用性。
HAL接口函数在移植时,针对下层硬件进行修改实现,那么应用程序和操作系统的代码就可以无缝移植。
实现方式
板级支持包BSP:可通过自写BSP来对采用的外设进行封装调用
片内外设HAL:ST公司提供的库包
三、嵌入式编程模式
采用前后台编程模式
后台程序是一个无限大循环,内部有任务队列
前台程序是中断程序,通过定时中断或外部触发中断来进行任务响应;
任务:一个具有独立功能的无线循环的程序段的一次运行活动。
用户可以可以自行编写定时中断程序,定义中断标志变量,并判断和清除标志变量
嵌入式系统
系统最小内核可以完成任务管理,任务通信,时间管理,内存管理。
用户编程完成任务划分,调用操作系统的接口函数完成应用程序编写。
三、嵌入式程序开发方式
1.寄存器开发
优点:
从细节上更加清晰
程序代码简练,短小,执行效率高
缺点:
寄存器数量随外设数量增加,记忆难度增加
程序后期维护,移植相对困难
2.固件库开发
优点:
降低对硬件理解要求,容易上手
程序代码容错性好,后期方便维护
缺点:
程序代码量较大,冗余较多,运行速度相对会有影响
总结
两种方式都要了解,起码能看懂别人写的寄存器代码,重点掌握库开发。学会库函数的功能和调用方法。
举报
更多回帖
rotate(-90deg);
回复
相关问答
嵌入式程序
嵌入式
如何去
开发
一种
嵌入式
程序
?
有
哪几种
方法?
2021-07-02
2054
存储管理的存储
方式
有
哪几种
呢?分别有何
优缺点
呢
2021-12-23
2514
新型
嵌入式
系统
开发
的模式
有
哪几种
2021-04-27
1739
传统
开发
和
嵌入式开发
的
优缺点
分别是什么
2021-12-24
2068
TokenServer
有
哪几种
开发方式
呢
2021-12-27
1318
嵌入式
系统传统编程模式
有
哪几种
?
2021-04-28
2182
针对
嵌入式
设计的无线网络选项
有
哪几种
?
2021-06-30
1533
嵌入式
软件测试的方法
有
哪几种
?
2021-04-28
968
嵌入式
Linux
程序
调试输出信息的一个小技巧记录
2021-12-24
742
嵌入式
软件
开发
的存储器
有
哪些呢?分别有什么
优缺点
2021-12-24
1057
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分