参考: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

zubax_gnss简介的更多相关文章

  1. ASP.NET Core 1.1 简介

    ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...

  2. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

  3. Cassandra简介

    在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...

  4. REST简介

    一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...

  5. Microservice架构模式简介

    在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...

  6. const,static,extern 简介

    const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...

  7. HTTPS简介

    一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...

  8. 【Machine Learning】机器学习及其基础概念简介

    机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...

  9. Cesium简介以及离线部署运行

    Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...

随机推荐

  1. 进程、线程、IP、端口间关系

    进程.线程.IP.端口间关系 进程是指在系统中正在运行的一个应用程序: 线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元. 对于操作系统而言,其调度单元是线程.一个进程至少包括 ...

  2. android -------- AES加密解密算法

    AES加密标准又称为高级加密标准Rijndael加密法,是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准.AES的基本要求是,采用对称分组密码体制,密钥长度可以为128.192或25 ...

  3. Leetcode: Split BST

    Given a Binary Search Tree (BST) with root node root, and a target value V, split the tree into two ...

  4. 某表中字段值存在多个Gid逗号分开 取值拆分每个gid SQL多个逗号隔开的取值

    存在值信息 表值函数实现: --实现split功能 的函数 拆分 逗号分开的多个值 ),)) )) as begin declare @i int set @SourceSql=rtrim(ltrim ...

  5. Qt编写小清新风格界面

    给一个朋友定制的界面,左侧有导航,左侧底部有运行+暂停+停止按钮,右侧有可伸缩面板,面板之间可以拉伸调节高度,左右两侧可以拉伸调节高度,所有的宽高和位置都保存在配置文件,下次重启立即应用,无边框标题栏 ...

  6. docker 删除含有指定字符的container

    docker container ls -a|grep 指定字符 | awk '{print $1}'| xargs -I{} docker rm {}

  7. [LeetCode] 380. Insert Delete GetRandom O(1) 插入删除获得随机数O(1)时间

    Design a data structure that supports all following operations in average O(1) time. insert(val): In ...

  8. 警方破获超大DDoS黑产案,20万个僵尸网络运营商被抓

    中国警方已镇压并逮捕了一个犯罪集团,该集团经营着一个由200,000多个受感染网站构成的僵尸网络,这些网站被用来发起DDoS攻击. 这是中国当局针对兴旺的本地DDoS租用场景进行的首次重大镇压,最大的 ...

  9. 面试之leetcode链表

    1 数组 (1)数组的插入 如果是插入到最后,那么不用移动O(1),如果插入位置在中间为O(n).所以最好O(1),最坏O(N),平均O(N),为了插入能达到O(1),插入O(1).引入了链表 2 链 ...

  10. Spring的日志管理

    一.spring的日志依赖 Logging是spring中唯一强制的外部依赖,spring中默认使用的日志是commons-logging,简称JCL,这里说的强制性,是因为在spring-core这 ...