聊一聊MCU的软件分层
(资料图)
一、MCU级软件有必要分层吗?
1.1 如果不分层会怎样?
看下面这段示例代码。
void main(){ sys_init() while(1) { //用PA1控制LED亮灭 GPIO_SetBits(GPIOA, GPIO_Pin_1); delay_ms(1000); GPIO_ResetBits(GPIOA, GPIO_Pin_1); delay_ms(1000); }}
在功能实现上这段代码没有问题。但如果硬件做变动呢?例如更换为其它品牌的mcu或者IO口更改呢?while(1)里面的代码是不是都要发生变动呢?不同的mcu底层库是有区别的。换一个MCU要通篇改动代码非常恶心!工作量也巨大!非常有必要做分层!无论是裸机还是RTOS都要分层。
1.2 软件分层的目的
1,提高对硬件的兼容性。上面已经介绍过了。MCU的软件开发与硬件强相关。在硬件设计时经常会有一供、二供、三供等方案。每换一次硬件就要大改一次代码开发效率低下。
2,增加代码通用性。例如项目A的一部分功能在项目B上曾经实现过,直接从项目B移植过来就行无须改动或者较少改动。
二、 代码层次
2.1 代码分层
可以按照下图来分层
2.2 MCU库层
这一层由MCU库层,由MCU厂家提供。
2.3 MCU_HAL层
这一层是对mcu库层的一个封装。当更换MCU时只需对这一层做修改,不会影响到其它层。如果完全将MCU的库封装一遍工作量将十分巨大,也没必要,需要哪个就封装哪个。例如用到uart了那就只把uart的封装一下,像IIC、SPI等无关的可以不用封装。
2.4 外设驱动层
这一层通过调用MCU_HAL层来实现对外设的驱动。例如,IIC控制电源芯片。驱动通过调用MCU_HAL层实现对电源芯片的操作。在这一层用来实现简单的寄存器读取。
2.5 外设功能层
这一层是对外设的基本功能进行一个封装。拿电源芯片举例。当更换电源芯片时,基本功能不会发生变化,比如控制电压电流等。把这些基础功能封装在此。示例代码如下
void set_cur(uint16_t data)//APP层调用这个API API命名不体现任何芯片信息 { xxx_set_cur();//对芯片进行操作 ...........}
2.6 APP层
这一层主要写应用功能。通过调用外设功能HAL层实现。当更换MCU或者某一个芯片时APP层无须改动。
关键词:
-
聊一聊MCU的软件分层
2023-07-07 -
辣鸡炒肉丝的正宗做法?
2023-07-07 -
巴基斯坦发生山体滑坡 至少8名儿童死亡
2023-07-07 -
江苏+三太保一季度GDP预测
2023-07-07 -
官渡区曙光派出所落实“三个听取” 优化营商环境护航经济发展
2023-07-07 -
郭台铭将于7月23日宣布参选?郭办回应了
2023-07-07 -
“才小暑吗?感觉已经暑得很大了呀!”杭州发布高温报告,谨防中暑!
2023-07-07 -
外来物种入侵破坏海洋生态 检察机关跨区域协作破解外来物种入侵整治难题
2023-07-07 -
侯汉廷再次提告赖清德!怒轰民进党借服贸议题造谣
2023-07-07 -
美国5月贸易逆差降至690亿美元
2023-07-07 -
海科新源深交所上市:市值68亿 预计上半年净利降幅80%
2023-07-07 -
镇远县应急管理局开展烟花爆竹安全专项检查,防患于未“燃”
2023-07-07 -
官宣再一次撤档,张译,于和伟这部反腐大剧播出无望
2023-07-07 -
四国“灌篮高手”齐聚新区
2023-07-07 -
东风日产启辰t70怎么样及吉利多少钱
2023-07-07 -
“光伏+”开辟中国清洁能源发展新赛道
2023-07-07 -
乐山师范学院组织召开教学工作会
2023-07-07 -
dnf门之主人卡隆怎么打 卡隆机制打法攻略
2023-07-07 -
视频:陕西乡村产业振兴带头人“头雁”体验式培育苹果产业班开班
2023-07-07 -
昆明司机 此地限时停车!3分钟超时抓拍
2023-07-07 -
午评:沪指跌0.36%创业板指跌0.89%,电力、农业板块走强
2023-07-07 -
2023上半年总结:负债累累,全靠融资活着!持续煎熬,谁会被迫离场?
2023-07-07 -
360浏览览器(360lui浏览器)
2023-07-07 -
“郑好融”的明星产品大盘点⑥ | 农行“纳税e贷”
2023-07-07 -
中国教育报怎么发表文章(怎样给中国教育报投稿)
2023-07-07 -
已准备好输给小德!瓦林卡坦言巅峰不在:我赢得温网的机会为零!
2023-07-07 -
国家自然科学基金委员会:女性科研人员申请“杰青”年龄限制放宽至48岁
2023-07-07 -
1937年的今天,日本侵略军发动卢沟桥事变|红色日历
2023-07-07 -
蚂蚁庄园7月8日:哪种动物汗腺不发达天热时需要浸水散热
2023-07-07 -
40℃以上!河南发布今年首个高温红色预警
2023-07-07
-
官渡区曙光派出所落实“三个听取” 优化营商环境护航经济发展
2023-07-07 -
海科新源深交所上市:市值68亿 预计上半年净利降幅80%
2023-07-07 -
视频:陕西乡村产业振兴带头人“头雁”体验式培育苹果产业班开班
2023-07-07 -
已准备好输给小德!瓦林卡坦言巅峰不在:我赢得温网的机会为零!
2023-07-07 -
搭在篮里便是菜 捉在蓝里便是蟹-全球独家
2023-07-06 -
“半导体口粮”出口管制影响多大?上市公司回应来了
2023-07-06 -
世界看点:录取通知书里的中国式浪漫
2023-07-06 -
群星击杀噬星者之后有什么优势
2023-07-05 -
开发商承诺给业主免除物业费,对物业公司有效吗?
2023-07-05 -
消息称AMD、微软和亚马逊等大厂排队竞购SK海力士HBM3E内存_每日简讯
2023-07-05