如何使用HAL(硬件抽象库)轻松制作8051项目
扫描二维码
随时随地手机看文章
用现代HAL简化8051固件开发
在探索8051固件开发教程时,我注意到它们中的大多数都采用了老派的方法。这些资源通常假定在低级嵌入式系统和硬件特定知识方面有很强的背景,这使得初学者或来自高级环境的开发人员很难理解。
为了解决这个问题,我为8051微控制器家族创建了一个现代和简化的固件开发环境。我的目标是在不牺牲性能或灵活性的情况下,使8051固件开发尽可能简单和易于访问。这个环境包括一个定制的硬件抽象层(HAL),它简化了编码,并将现代嵌入式开发实践带入了经典的8051体系结构。
8051 HAL的主要特性
•易用性:用干净、可读的api抽象出特定于硬件的寄存器配置。
•模块化设计:允许开发人员只使用他们需要的组件- gpio,定时器,UART等-用于较小的固件足迹。
•多任务支持:使用HAL内置的简单协作调度器并行运行多个任务。这为传统的单线程微控制器增加了并发能力。
•跨平台工具链兼容性:设计用于与开源的SDCC(小型设备C编译器)一起工作,使得使用现代编辑器(如VS Code)构建和flash固件变得容易。
•轻便便携:在设计时考虑到最小的资源使用,适用于受限的8051设备,如AT89C51, AT89S52及其变体。
如何开始?
•安装sdcc、avrdude和make:供Fedora用户使用
•克隆存储库:下载本文附带的存储库,或者使用。
•打开8051_HAL文件夹:您将发现如下的目录结构。
•运行。/Create_Prj.sh:在8051_HAL中打开Terminal并运行
•键入项目名称:键入LED
•在vscode中打开项目文件夹,它应该是这样的:
•现在编译项目:
•要Flash代码运行:(确保USBasp连接到8051和您的计算机)。
让LED闪烁
如果你已经开始了解如何使用像ex GPIO这样的HAL组件,请进入Blinky文件夹并在vscode中打开其自述文件。
•README将帮助您理解如何使用组件。
一些例子:
为什么这很重要
尽管8051年代久远,但它仍然广泛用于遗留系统、成本敏感型应用程序和教育项目。然而,开发工作流程和工具经常落后。在这种环境下:
•初学者可以编写干净、结构化的C代码,而不需要深入的硬件知识。
•高级开发人员可以快速创建原型并测试固件逻辑。
•团队可以为基于8051的项目标准化他们的开发实践。
本文编译自hackster.io