裸机编程指南
当下的嵌入式编程通常需要使用开发套件来加快和简化开发流程。例如,Arm Keil 带有集成 IDE、调试器和一组软件包,内含 RTOS、驱动程序、中间件 (如 TCP/IP 堆栈) 以及 mbedTLS (SSL/TLS) 或 lvgl (图形) 之类的库。意法半导体的 Cube IDE 以及恩智浦的 MCUXpresso、德州仪器的 CCS、微芯的 MPLAB 等开发工具也提供类似的功能。
当开发者在其中一个框架中启动项目后,他们要在各种软件层之上开发应用代码。有时开发者可能会选择绕过所有这些层,而开发直接与硬件通信的代码。这种开发方式称为 裸机编程 。该做法的主要目的如下:
通过对所开发的应用进行充分了解,掌握每一个细节,由此减轻维护负担
充分实现目标硬件的性能和灵活性,起初比较耗时,但随着项目的推进,可能会带来巨大回报
避免花费时间来修复和调试底层软件层,尤其是在测试不充分、文档记录不完整且漏洞百出的情况下
裸机开发可以不使用集成开发套件 (IDE),只需使用任何一款编辑器和 Arm GCC 编译器即可操作。当然,也可以使用诸如 Arm Keil 这样的 IDE 来完成开发工作。无论是哪种情况,开发者都需要了解以下几个关键概念:
内存的组织方式
外设的工作原理
生成的二进制代码的布局
用于生成所需布局的链接器脚本情况
矢量表、中断和弱符号
CMSIS 设备头文件:Arm 核心和供应商外设
想要更进一步了解裸机编程方面的知识并获得专业的指导?那就不要错过我们为你精心准备的一份裸机编程指南,这份由 Cesanta 工程总监 Sergey Lyubka 撰写的指南将从基础入手,以循序渐进的方式为你介绍所有必要的主题,比如内存映射的组织、外设 I/O 等等。从经典的 LED 闪烁入手,逐步过渡到定时器、中断等深度主题,然后切入到一个显示有交互式设备仪表板的嵌入式 Web 服务器。在指南的最后,还将着重介绍关键主题,即在目标硬件上进行自动化软件构建和自动化测试。
无论你是否具备嵌入式开发经验,仅需了解基础的 C 编程语言知识,就可以根据这份指南的内容,开启你的裸机开发之旅了, 点击“阅读原文”查看更多指南详情,立即体验吧!
推荐帖子