![](https://img-blog.csdnimg.cn/ba3fff5d8b614108b2e4ffc2e5475d29.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
基于AT32的Betaflight飞行控制器
文章平均质量分 88
AT32国产飞控最近比较火,佬儿出了一些关于BF飞控移植的文章,但不太详细。这里记录了本人学习BF飞控时关于Makefile、源码启动流程、源码运行原理部分的总结,留待参照。
清月阁
这个作者很懒,什么都没留下…
展开
-
(六)基于FreeRTOS的BF移植到Keil——BF源码LED驱动
六、基于FreeRTOS的BF移植到Keil(记)6.1随记6.1.1 C语言中的#与##记号串化(#):记号黏结(##)6.1 LED(GPIO)——IO初始化(1) ioRec_t结构体数据类型(2) ioDefUsedMask[]数组6.2 LED(GPIO)——LED初始化6.2.1 statusLedConfig()函数(1)statusLedConfig_t LED状态设置结构体数据类型(3)statusLedConfig_System变量的定义与初始化6.2.2 led原创 2023-11-17 10:21:37 · 142 阅读 · 0 评论 -
(五)Betaflight 移植到keil——BF_OS运行
比如ARMCC似乎是没有对“optimize”的定义,这个是用来设置程序优化程度为-O2的,Keil是在“魔术棒”(目标选项)有定义。当然“异常”都有各自的中断,但两者还是有区别的,两者是因果关系发生异常不一定引起中断,中断与异常的编号也是两个系统。综上所述,__get_BASEPRI()就是一个cmsis头文件中的宏定义,位于“\lib\main\AT32F43x\cmsis\cm4\core_support\cmsis_armcc.h”中,可以通过汇编语言得内核寄存器“BASEPRI”的值。原创 2023-11-11 12:58:34 · 218 阅读 · 1 评论 -
(五)Betaflight 移植到keil——BF_OS初始化
5.6.3 BF_OS初始化5.6.3.1 systemInit()函数system_clock_config();cycleCounterInit();5.6.3.2 tasksInitData()函数(1)TASK_COUNT:(2)task_t(任务控制块 数据类型):(3)task_attribute_t:1. const int8_t staticPriority; 优先级属性5.6.3.3 tasksInit();函数(1)queueAdd()函数(2原创 2023-11-11 11:36:02 · 170 阅读 · 1 评论 -
(一~)Betaflight开源AT32飞控Makefile详解
AT32国产飞控最近比较火,佬儿出了一些关于BF飞控移植的文章,但不太详细。这里记录了本人学习BF飞控时关于Makefile部分的总结,留待参照。原创 2023-10-04 11:55:44 · 1896 阅读 · 2 评论 -
(四)Betaflight启动流程详解
搜索发现systemInit() 函数在src/main/drivers/system.h 中初声明,确在src/main/drivers/system_at32f43x.c 、 src/main/target/SITL/target.c 与 obj/main/AT32F437DEV/drivers/system_at32f43x.i 三个文件中都有定义。不过这里还有些问题,全文搜索int main(void)函数,发现会出现许多结果,大部分都为各种驱动与设备.c文件的,看内容类似初始化之类的操作。原创 2023-10-15 10:53:43 · 270 阅读 · 1 评论 -
(五)Betaflight 移植到keil
5.1 环境搭建5.1.1 MDK安装:5.1.2 芯片Pack包安装:5.1.3 J-LINK OB:5.1.4 另外使用Jlink调试过程中可能出现如下报错:5.1.5 官方例程试验5.2 移植前准备5.2.1 AT32官方资料简介5.2.2 Keil文件类型5.2.3 options for target(目标选项) 与 Manage Project(管理项目)5.3 AT32VMT7在Keil下的启动流程5.3.1 AT32存储器资源1. 前存储空间原创 2023-11-03 09:53:49 · 566 阅读 · 6 评论 -
附1 静态断言
Linux环境下静态断言与Keil环境下的自定义断言原创 2023-11-01 07:13:15 · 70 阅读 · 1 评论