zubax_gnss简介

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

目录结构
1

bootloader:主要功能是升级application、加载application和初始化application需要的一些参数
firmware:采集气压计和gnss等传感器的信息,通过uavcan接口提供can信息采集

bootloader状态机
1

bootloader
1

libcanard:CAN总线安全工具,用于CAN升级application使用
src:bootloader关键处理代码
zubax_chibios:与chibios操作系统相关
ld.ld:flash分区信息

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

bootloadersrc
1

board:与芯片类型相关。初始化时钟、GPIO和GPIO重映射等
os_config:与芯片类型相关。管脚、时钟、外设的使能和参数配置
cli:命令行
uavcan:can封装

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

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

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

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

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

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

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

zubax_chibios
1
源码中,默认只支持这三类芯片。如果还不能满足,需要自行添加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
原文地址:https://www.cnblogs.com/zhangxuechao/p/11709505.html