如何使用嵌入式C启动ARM Cortex编程?

use*_*780 7 c embedded arm

我熟悉8051 C编程.现在我想学习ARM cortex M3编程.我有STM32F103C8T6开发板和ARM Cortex M3处理器,它是程序员和Keil编译器.我想用它做小项目,例如闪烁的LED,SPI和I2C编程等.我对臂架构知之甚少.很多人在博客上说直接开始编程而不是阅读架构或阅读百页ARM数据表.我不明白怎么可能.

那么我的第一步应该是什么?

  1. 我是否应该阅读STM32F103C8T6或ARM Cortex M3用户手册的数据表?

  2. 8051与ARM编程有很大区别.在8051中,我们不需要添加库/头文件.在ARM中,我们需要添加许多库/头文件.假设我想做眨眼程序或学习SPI/I2C通信.在KEIL编译器或STM CubeMX中,这些头文件已经存在.但是如果我希望自己从头开始做所有事情(编写外设,I/O端口,SPI/I2C协议代码的头文件代码),它真的可能吗?如果是,我该怎么做呢?

我非常困惑和沮丧,因为我还没有找到合适的人来引导我

在此输入图像描述

The*_*Man 9

我去过那里,经过一段时间后,我意识到从数据表开始总是更好,即使它是你的第一块板.

数据表提供了电路板,引脚和基本通信的全面工作.这可能很乏味,但它值得,当你开始编程时你会意识到.

之后,您可以直接跳转到头文件,并查看基本功能的实现,这将提供有关优化技术,编程风格和最佳实践的大量见解.

如果可能的话,找一些为该主板编写的代码(我总是在这里失败,如果你的主板很少见,这很难).

有了这个,您应该准备好编写几乎任何代码.从眨眼开始(板的hello世界)

另外根据我的经验,我想告诉你,如果需要时间,也没关系.有耐心和坚持.


Cli*_*ord 5

如果您利用现有的库代码来处理架构、启动和外设驱动程序问题,则有可能(即在没有详细了解数据表和参考手册的情况下开始)。对于 ARM Cortex-M 和 STM32,特别是那些可能包括(在不同的抽象和范围级别):

通常,商业工具供应商(例如 Keil、IAR、Rowley、Green Hills)也会提供示例项目、驱动程序库和中间件来帮助您入门——通常用于特定的开发板。

这可能是您认为对于 ARM 编程您的看法

“需要添加许多库/头文件。”

您根本不需要 - 但它们是比 8051 更复杂的部件,具有广泛而复杂的外围设备,部件和供应商之间存在差异,您可以通过使用这些库来节省大量时间和精力。

请注意,ARM Cortex-M 内核本身不包括微控制器外设以及 CPU 和 NVIC 中断控制器之外的外围设备,并且在某些高端部件 FPU 上,一切都是特定于供应商的,并且供应商之间存在很大差异 - 这就是为什么您需要了解供应商文档,或者利用芯片或工具供应商或社区提供的库。

如果您想全面了解 Cortex-M 或 STM32 并充分利用它们,那么阅读参考资料是无可替代的,但这绝非只是入门的必要。

如果你想要一个更简单以Cortex-M的比ARM参考材料,然后约瑟夫耀的权威指南ARM®Cortex®-M3和Cortex®-M4处理器是一个很好的来源,但除非你正在编写低级别的RTOS或裸机启动代码或其他系统级代码,您可能不需要那么多材料。本书的早期 M3 版本在某些地方以 PDF 格式提供。

芯片供应商的参考手册将描述供应商特定的特性,例如内存接口、内存映射、电源管理特性、闪存编程、中断映射和硬件外设,这可能是更有用的材料。

对于 STM32,Hitex 的 Trevor Martin 提供了一个比较广泛的指南:The Insider's Guide To The STM32 ARM Based Microcontroller,这只是 Trevor 可能有用的几本出版物之一。