1 / 29
文档名称:

源代码分析.doc

格式:doc   大小:523KB   页数:29页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

源代码分析.doc

上传人:rdwiirh 2020/5/29 文件大小:523 KB

下载得到文件列表

源代码分析.doc

相关文档

文档介绍

文档介绍:Pixhawk源码笔记一:APM代码基本结构 Pixhawk源码笔记一:APM代码基本结构基础知识详细参考:http://dev./wiki/learning-the-ardupilot-codebase/第一部分:介绍详细参考:http://dev./wiki/learning-ardupilot-introduction/ArduPilot代码分为5个主要部分,基本结构分类如下: vehicledirectoriesAP_HALlibrariestoolsdirectoriesexternalsupportcode1、vehicledirectories模型类型当前共有4种模型:ArduPlane,ArduCopter,APMrover2andAntennaTracker。,就是为了兼容arduino平台,以后可能会放弃。2、AP_HAL硬件抽象层硬件抽象层,使得在不同硬件平台上的移植变得简单。其中AP_HAL目录定义了一个通用的接口。其他的目录AP_HAL_XXX针对不同硬件平台进行详细的定义。例如AP_HAL_AVR目录对于AVR平台,AP_HAL_PX4对应PX4平台,AP_HAL_Linux对应Linux平台。3、toolsdirectories工具目录主要提供支持。Forexamples,tools/、externalsupportcode外部支持代码对于其他平台,需要外部支持代码。例如Pixhawk、PX4的支持代码如下:PX4NuttX–板载实时系统。thecoreNuttXRTOSusedonPX4boardsPX4Firmware–PX4固件。thebasePX4middlewareanddriversusedonPX4boardsuavcan–飞行器CAN通信协议。theuavcanCANBUSimplementationusedinArduPilotmavlink–Mavlink通信协议。themavlinkprotocolandcodegenerator5、系统编译针对不同的硬件板,编译可以采用“makeTARGET”的形式。makeapm1–theAPM1boardmakeapm2–theAPM2boardmakepx4-v1–thePX4v1makepx4-v2–thePixhawk如果要移植到新的硬件,可以在mk/。比如:makeapm2-octa-j8或者:makepx4-v2-j8采用8通道并行编译方式,针对APM、Pixhawk硬件板(AVR、STM32),编译八旋翼代码。第二部分:学****sketch例程代码http://dev./wiki/learning-ardupilot-the-example-sketches/sketch,。开始之前,你可以试着阅读、编译并运行下面的sketcheslibraries/AP_GPS/examples/GPS_AUTO_testlibraries/AP_InertialSensor/examples/INS_genericlibraries/pass/examples/pass_testlibraries/AP_Baro/examples/BARO_genericlibraries/AP_AHRS/examples/AHRS_Test例如,下面的编译方法,将在Pixhawk上安装AP_GPS例程sketch。cdlibraries/AP_GPS/examples/GPS_AUTO_testmakepx4-cleanmakepx4-v2makepx4-v2-upload正确理解sketch例程代码,(目录ardupilot\libraries\AP_GPS\examples\GPS_AUTO_test),主要几个特点:1、pde文件包含很多includes;2、定义了hal引用声明;3、代码非常粗糙;4、setup()和loop()函数1、include文件pde文件转变为C++文件后,提供必要的库引用支持。2、hal引用声明定义如下:constAP_HAL::HAL&hal=AP_HAL_BOARD_DRIVER;//pixhawk等价于AP_HAL_PX4该定义,方便访问硬件接口,比如console终端、定时器、I2C、SPI接口等。,如下:constHAL_