Ardupilot Chibios硬件启动初始化过程整理

本文详细描述了Ardupilot系统如何在ChibiosHAL架构下启动,涉及从硬件入口到Copter等应用类别的初始化过程,包括GPIO、RCC、外设初始化等关键步骤,以及Copter类的主函数入口点。

ardupilot 的启动根据不同HAL 的启动过程不一样 , chibios 的硬件入口是

硬件启动 -> 
        modules/Chibios/common/startup/ARMCMx/compilers/GCC/VECTOR.S ResetHandler: 
           modules/Chibios/common/startup/ARMCMx/compilers/GCC/ crt0_v7m.S crt0_entry
                    --AP_HAL_Chibios/hwdef/common/Board.c   __early_init()   初始化pal(gpio)& sysClock 
                    --AP_HAL_Chibios/hwdef/common/Board.c    __late_init () 
                                --  modules/Chibios/os/hal/src/hal.c   halInit()
                                        --  modules/Chibios/os/hal/osal/lib/osal_vt.c vtInit
                                        --  modules/Chibios/os/hal/ports/AT32/AT32f435_437xx/hal_lld.c hal_lld_init
                                            --rccEnablePWRInterface() dmaInit IrqInit 初始化RCC DMA Irq
                                            --palInit 初始化gpio
                                            -- adcInit   lld 库各种外设初始化
                                            -- 
### 编译 ArduPilot ChibiOS 示例项目的指南 为了成功编译 ArduPilot 中基于 ChibiOS 的示例项目,开发者需遵循一系列特定配置和命令执行流程。以下是详细的说明: #### 准备工作环境 确保已安装必要的工具链和支持软件包。对于大多数 Linux 发行版而言,可以通过以下命令来设置基本构建环境: ```bash sudo apt-get update && sudo apt-get install -y git-core gcc-arm-none-eabi build-essential python3-pip wget libncurses-dev autoconf automake libusb-1.0-0-dev scons ``` #### 获取源码仓库 克隆官方指定的 ArduPilot 和对应的 ChibiOS 叉版本存储库到本地机器上: ```bash git clone https://github.com/ArduPilot/ardupilot.git ardupilot-repo cd ardupilot-repo/libraries/AP_HAL_ChibiOS/hwdef/ wget https://raw.githubusercontent.com/ArduPilot/waf-tools/master/get_chibios.sh chmod +x get_chibios.sh ./get_chibios.sh ``` 此操作会下载并初始化所需的硬件定义文件以及 ChibiOS 操作系统的副本[^1]。 #### 配置目标平台参数 进入 `ardupilot` 文件夹内,利用 WAF 构建系统来进行具体板卡的选择和其他选项设定。例如针对 Pixhawk 类型飞行控制器可以这样做: ```bash cd ../.. waf configure --board=px4-v2 ``` #### 执行实际编译过程 一旦完成上述准备工作之后,则可直接调用 waf 工具启动整个工程的编译动作: ```bash waf clean waf build ``` 如果一切顺利的话,在终端窗口里应该能看到类似 "Build successful" 这样的提示信息表示编译顺利完成[^2]。 #### 调试支持 考虑到嵌入式编程特有的挑战性,在遇到困难时不妨善加利用 ChibiOS 自身携带的各种调试辅助功能,比如断言检查、内存保护等功能模块可以帮助定位潜在错误位置[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值