zubax_gnss简介
参考: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简介的更多相关文章
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
- HTTPS简介
一.简单总结 1.HTTPS概念总结 HTTPS 就是对HTTP进行了TLS或SSL加密. 应用层的HTTP协议通过传输层的TCP协议来传输,HTTPS 在 HTTP和 TCP中间加了一层TLS/SS ...
- 【Machine Learning】机器学习及其基础概念简介
机器学习及其基础概念简介 作者:白宁超 2016年12月23日21:24:51 摘要:随着机器学习和深度学习的热潮,各种图书层出不穷.然而多数是基础理论知识介绍,缺乏实现的深入理解.本系列文章是作者结 ...
- Cesium简介以及离线部署运行
Cesium简介 cesium是国外一个基于JavaScript编写的使用WebGL的地图引擎,一款开源3DGIS的js库.cesium支持3D,2D,2.5D形式的地图展示,可以自行绘制图形,高亮区 ...
随机推荐
- 进程、线程、IP、端口间关系
进程.线程.IP.端口间关系 进程是指在系统中正在运行的一个应用程序: 线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元. 对于操作系统而言,其调度单元是线程.一个进程至少包括 ...
- android -------- AES加密解密算法
AES加密标准又称为高级加密标准Rijndael加密法,是美国国家标准技术研究所NIST旨在取代DES的21世纪的加密标准.AES的基本要求是,采用对称分组密码体制,密钥长度可以为128.192或25 ...
- Leetcode: Split BST
Given a Binary Search Tree (BST) with root node root, and a target value V, split the tree into two ...
- 某表中字段值存在多个Gid逗号分开 取值拆分每个gid SQL多个逗号隔开的取值
存在值信息 表值函数实现: --实现split功能 的函数 拆分 逗号分开的多个值 ),)) )) as begin declare @i int set @SourceSql=rtrim(ltrim ...
- Qt编写小清新风格界面
给一个朋友定制的界面,左侧有导航,左侧底部有运行+暂停+停止按钮,右侧有可伸缩面板,面板之间可以拉伸调节高度,左右两侧可以拉伸调节高度,所有的宽高和位置都保存在配置文件,下次重启立即应用,无边框标题栏 ...
- docker 删除含有指定字符的container
docker container ls -a|grep 指定字符 | awk '{print $1}'| xargs -I{} docker rm {}
- [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 ...
- 警方破获超大DDoS黑产案,20万个僵尸网络运营商被抓
中国警方已镇压并逮捕了一个犯罪集团,该集团经营着一个由200,000多个受感染网站构成的僵尸网络,这些网站被用来发起DDoS攻击. 这是中国当局针对兴旺的本地DDoS租用场景进行的首次重大镇压,最大的 ...
- 面试之leetcode链表
1 数组 (1)数组的插入 如果是插入到最后,那么不用移动O(1),如果插入位置在中间为O(n).所以最好O(1),最坏O(N),平均O(N),为了插入能达到O(1),插入O(1).引入了链表 2 链 ...
- Spring的日志管理
一.spring的日志依赖 Logging是spring中唯一强制的外部依赖,spring中默认使用的日志是commons-logging,简称JCL,这里说的强制性,是因为在spring-core这 ...