6年9个月前IP:海南
870662
3楼

抽象程度不同,如果你自己编写操作系统就会发现了,一切都是从0开始,你得自己控制外设,然后把这些控制代码封装好提供给上一层接口。不过在PC机上,就算自己编写OS,也接触不到太多寄存器,基本上BIOS内部的硬件控制代码包办了好多,你只需要调用函数就行。

同样,MCU也是如此,没有OS的话,没有库的话,你自己首先要写好外设驱动函数,比如配置IO口,寄存器啥的,然后把这些硬件级操作封装,随后开始写外设的软件协议层,怎么建立通信,怎么开始通信,具体就是通过配置好的IO口收发特定序列,然后封装。最后可能还有一层,实现调用一个函数就可以传输或者接受指定数据。就是由下到上,层层封装,层层抽象,最后展现在编程者的眼中可能就是调用了一个上层函数就干完了一件事,实际上,由上到下的过程极其复杂,对于PC机来说更是如此。

你可以下载STM32的HAL库源码,一级一级向下分析就知道了,代码的分层结构很神奇。

评论
1
文号 / 870662

百炼成钢
名片专栏发私信
学术分 1
总主题 76 帖总回复 759 楼拥有证书:进士 学者 机友 笔友
注册于 2013/07/27 23:47:39最后登录 2026/10/28 07:42:24
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:0

个人简介

暂未填写
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的