参考:https://docs.zubax.com/zubax_gnss

目录结构

bootloader:主要功能是升级application、加载application和初始化application需要的一些参数

firmware:采集气压计和gnss等传感器的信息,通过uavcan接口提供can信息采集

bootloader状态机

bootloader

libcanard:CAN总线安全工具,用于CAN升级application使用

src:bootloader关键处理代码

zubax_chibios:与chibios操作系统相关

ld.ld:flash分区信息

调试阶段,如果DEBUG编译,可能会报代码段溢出。如果修改代码段长度,Makefile中也要对应修改,不然程序找不到正确flash信息

bootloader\src

board:与芯片类型相关。初始化时钟、GPIO和GPIO重映射等

os_config:与芯片类型相关。管脚、时钟、外设的使能和参数配置

cli:命令行

uavcan:can封装

src目录下的东西就是移植的时候需要修改的,修改board初始化函数和os_config中各种配置文件与自己的板子适配

zubax_gnss移植:http://blog.csdn.net/zhangxuechao_/article/details/78446800

适配文件

适配的文件在目录下也可以找到,大神的代码中已经支持很多芯片,但是不是一点问题没有,可能还需要自己做一些修改才能编译过

尤其要注意外部高速时钟是不是配置正确,不然各种外设都会出问题。比如串口打印乱码



与芯片适配的os_config中的board.h配置文件



os_config中的其他三个配置文件。这也是测试chibios系统是否可用的第一个demo

hal库测试



在测试chibios系统之前,也可以先测试各种外设是否工作正常

zubax_chibios



源码中,默认只支持这三类芯片。如果还不能满足,需要自行添加rules_x.mk

#
# Copyright (c) 2014 Zubax, zubax.com
# Distributed under the MIT License, available in the file LICENSE.
# Author: Pavel Kirienko <pavel.kirienko@zubax.com>
# ZUBAX_CHIBIOS_DIR := $(dir $(lastword $(MAKEFILE_LIST))) CPPSRC += $(ZUBAX_CHIBIOS_DIR)/zubax_chibios/platform/stm32/sys_stm32.cpp \
$(ZUBAX_CHIBIOS_DIR)/zubax_chibios/platform/stm32/watchdog_stm32.cpp \ CHIBIOS := $(ZUBAX_CHIBIOS_DIR)/chibios
include $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_stm32f1xx.mk //修改重点
include $(CHIBIOS)/os/hal/ports/STM32/STM32F1xx/platform_f105_f107.mk //修改重点
include $(CHIBIOS)/os/rt/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk LDSCRIPT ?= $(PORTLD)/STM32F107xC.ld //修改重点 MCU = cortex-m3 //修改重点 include $(ZUBAX_CHIBIOS_DIR)/_rules_armcm.mk

最新文章

  1. DayPilot 7.8 DLL去DEMO字样下载
  2. cosbench read异常解决办法。 Unable to verify integrity of data download. Client calculated content hash didn&#39;t match hash calculated by Amazon S3. The data may be corrupt.
  3. 用python语言讲解数据结构与算法
  4. 使用JNDI或JDBC连接数据库
  5. log4net资料收集
  6. Replace JSON.NET with ServiceStack.Text in ASP.NET Web API
  7. js dom 操作
  8. Apache+lvs高可用+keepalive(主从+双主模型)
  9. Linux 循环设备 /dev/loop 解惑
  10. 智能路由——ESB
  11. canvas基础—图形变换
  12. C#核心基础--类的声明
  13. Azure系列2.1.9 —— CloudBlob
  14. 如何在debug vue-cli建立的项目
  15. rabbitmq安装与高可用集群配置
  16. ASP.NET MVC + EF 更新的几种方式
  17. centos6.5(64bit),python2.6.6安装MySQLdb模块
  18. Redis Server installation FAQs
  19. 记一次cocos项目的加载速度优化
  20. 【技术开放日】msup携手HPE揭秘全球测试中心背后的12条技术实践

热门文章

  1. 文献阅读 | A single-cell molecular map of mouse gastrulation and early organogenesis
  2. curl保留cookie
  3. [转]Maven 国内源配置(2019/2/14)
  4. EFProf用法
  5. python提取mysql中指定列参数,并循环打印
  6. windows下根据tcp端口查询对应的进程id(端口被占用)
  7. 基于thrift的node.js rpc服务
  8. C#不区分大小写的字符串替换(Replace)函数
  9. 在webstorm里使用git
  10. bootstrap.min.css.map作用