主要内容:嵌入式开发流程
1.去芯片原厂官网,下载资料,查看芯片的手册(如数据手册和参考手册,最重要的两个文档)数据手册更加偏向于硬件的数据,如电流电压,电气特性等。参开手册偏向于寄存器的描述,以及对应的硬件电路。但都是底层开发需要常看的手册
(芯片原厂根据芯片做的开发板,叫做公板,一般比较难买到)
2.下载开发板板配套资料(如《原理图》)
3.下载IDE并且编写代码
(1)使用汇编操作寄存器 //执行效率高 编写难度大,移植性差
(2)使用C语言操作寄存器 //执行效率适中 编写效率低、移植性差
以上两点好处是不管什么芯片,只好看好不同芯片中寄存器的地址,看到相关的硬件即可)
(3)使用库开发,
一是标准库。 //执行效率稍低 编写效率高、移植性稍低
二是HAL库。
都是公司提供的函数,通过函数来控制硬件。
库的寻找途径:芯片原厂官网搜索即可,stm32芯片就去ST公司的官网
4.创建工程
(1)自定义创建工程 定制化程度高,
(2)STM32CubeMX创建工程 只能按照软件的规范来写代码
(这个软件是可以快速设置初始化,从而快速生成代码,只能生成HAL库)
Cube注意:不能有中文路径
补充:ARM设计Cortex—M3内核,然后芯片厂商开发芯片中的时钟、内存等
针对stm32c8t6
GPIOA地址在 0x4001 0800- 0x4001
flash memory
system memory
SRAM
单片机的启动过程:
1.0x0000 0000 地址中存储了要单片机启动时候要跳转的地址
(该地址要么存储flash memory的地址,则单片机先执行flash memory中的代码;改地址要么存储system memory的地址,则单片机先执行system memory中的代码)