当下的嵌入式编程通常需要使用开发套件来加快和简化开发流程。
例如,Arm Keil 带有集成 IDE、调试器和一组软件包,内含 RTOS、驱动程序、中间件 (如 TCP/IP 堆栈) 以及 mbedTLS (SSL/TLS) 或 lvgl (图形) 之类的库。
意法半导体的 Cube IDE 以及恩智浦的 MCUXpresso、德州仪器的 CCS、微芯的 MPLAB 等开发工具也提供类似的功能。
当开发者在其中一个框架中启动项目后,他们要在各种软件层之上开发应用代码。
有时开发者可能会选择绕过所有这些层,而开发直接与硬件通信的代码。这种开发方式称为裸机编程。该做法的主要目的如下:
通过对所开发的应用进行充分了解,掌握每一个细节,由此减轻维护负担
充分实现目标硬件的性能和灵活性,起初比较耗时,但随着项目的推进,可能会带来巨大回报
避免花费时间来修复和调试底层软件层,尤其是在测试不充分、文档记录不完整且漏洞百出的情况下
裸机开发可以不使用集成开发套件 (IDE),只需使用任何一款编辑器和 Arm GCC 编译器即可操作。
当然,也可以使用诸如 Arm Keil 这样的 IDE 来完成开发工作。无论是哪种情况,开发者都需要了解以下几个关键概念:
内存的组织方式
外设的工作原理
生成的二进制代码的布局
用于生成所需布局的链接器脚本情况
矢量表、中断和弱符号
CMSIS 设备头文件:Arm 核心和供应商外设
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !