源码下载:https://github.com/Zubax/zubax_gnss.git

源码默认支持STM32F107芯片

STM32 HAL库测试:zubax_gnss\bootloader\zubax_chibios\chibios\testhal\STM32

STM32 ChibiOS/RT系统测试:zubax_gnss\bootloader\zubax_chibios\chibios\demos\STM32

拷贝STM32F407默认配置文件

这三个文件是ChibiOS/RT系统主要的配置文件

源:zubax_gnss\bootloader\zubax_chibios\chibios\demos\STM32\RT-STM32F407-DISCOVERY

目的:zubax_gnss\bootloader\src\os_config

# vi mcuconf.h

#define STM32_SPI_USE_SPI3                  TRUE //使用SPI3
#define STM32_USB_USE_OTG1 TRUE //使用USB1
#define STM32_SERIAL_USE_USART1 TRUE //使用UART1 # vi halconf.h
#define HAL_USE_SPI TRUE //使能SPI
#define HAL_USE_SERIAL_USB TRUE //使能SERIAL_USB
#define HAL_USE_USB TRUE //使能USB # vi chconf.h
#define CH_DBG_ENABLE_STACK_CHECK TRUE //DEBUG使用

拷贝board.h

源:zubax_gnss\bootloader\zubax_chibios\chibios\os\hal\boards\ST_STM32F4_DISCOVERY

目的:zubax_gnss\bootloader\src\os_config

# vi board.h

#define GPIO_PORT_LED_CAN1              GPIOF   //用户程序CAN状态灯定义
#define GPIO_PIN_LED_CAN1 9
#define GPIO_PORT_LED_CAN2 GPIOF
#define GPIO_PIN_LED_CAN2 10
#define DEBUG_BUILD 1 //DEBUG开关

修改Makefile

# vi Makefile

SERIAL_CLI_PORT_NUMBER = 3  //UART调试口选择。-DSTDOUT_SD=SD$(SERIAL_CLI_PORT_NUMBER)

include zubax_chibios/rules_stm32f446.mk 

firmware中还需配置

pal_lld.h:(zubax_gnss\firmware\zubax_chibios\chibios\os\hal\ports\STM32\LLD\GPIOv2\pal_lld.h)

因为F407使用的是GPIOv2

#define pal_lld_setport(port, bits) (((ioportid_t)(port))->BSRR.H.set = (uint16_t)(bits))   //添加强制类型转换,不然编译报错

#define PAL_MODE_STM32_ALTERNATE_PUSHPULL   16  //GPIOv2中没有定义
#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN 17

air_sensor.cpp:zubax_gnss\firmware\src\air_sensor.cpp

driver_(&SPID3, (GPIO_TypeDef*)GPIO_PORT_BAROMETER_CHIP_SELECT, GPIO_PIN_BAROMETER_CHIP_SELECT) //同上

配置board.cpp

board.cpp:\zubax_gnss\firmware\src\board

const PALConfig pal_default_config = {
#if STM32_HAS_GPIOA
{VAL_GPIOA_MODER, VAL_GPIOA_OTYPER, VAL_GPIOA_OSPEEDR, VAL_GPIOA_PUPDR,
VAL_GPIOA_ODR, VAL_GPIOA_AFRL, VAL_GPIOA_AFRH},
#endif
#if STM32_HAS_GPIOB
{VAL_GPIOB_MODER, VAL_GPIOB_OTYPER, VAL_GPIOB_OSPEEDR, VAL_GPIOB_PUPDR,
VAL_GPIOB_ODR, VAL_GPIOB_AFRL, VAL_GPIOB_AFRH},
#endif
#if STM32_HAS_GPIOC
{VAL_GPIOC_MODER, VAL_GPIOC_OTYPER, VAL_GPIOC_OSPEEDR, VAL_GPIOC_PUPDR,
VAL_GPIOC_ODR, VAL_GPIOC_AFRL, VAL_GPIOC_AFRH},
#endif
#if STM32_HAS_GPIOD
{VAL_GPIOD_MODER, VAL_GPIOD_OTYPER, VAL_GPIOD_OSPEEDR, VAL_GPIOD_PUPDR,
VAL_GPIOD_ODR, VAL_GPIOD_AFRL, VAL_GPIOD_AFRH},
#endif
#if STM32_HAS_GPIOE
{VAL_GPIOE_MODER, VAL_GPIOE_OTYPER, VAL_GPIOE_OSPEEDR, VAL_GPIOE_PUPDR,
VAL_GPIOE_ODR, VAL_GPIOE_AFRL, VAL_GPIOE_AFRH},
#endif
#if STM32_HAS_GPIOF
{VAL_GPIOF_MODER, VAL_GPIOF_OTYPER, VAL_GPIOF_OSPEEDR, VAL_GPIOF_PUPDR,
VAL_GPIOF_ODR, VAL_GPIOF_AFRL, VAL_GPIOF_AFRH},
#endif
#if STM32_HAS_GPIOG
{VAL_GPIOG_MODER, VAL_GPIOG_OTYPER, VAL_GPIOG_OSPEEDR, VAL_GPIOG_PUPDR,
VAL_GPIOG_ODR, VAL_GPIOG_AFRL, VAL_GPIOG_AFRH},
#endif
#if STM32_HAS_GPIOH
{VAL_GPIOH_MODER, VAL_GPIOH_OTYPER, VAL_GPIOH_OSPEEDR, VAL_GPIOH_PUPDR,
VAL_GPIOH_ODR, VAL_GPIOH_AFRL, VAL_GPIOH_AFRH},
#endif
#if STM32_HAS_GPIOI
{VAL_GPIOI_MODER, VAL_GPIOI_OTYPER, VAL_GPIOI_OSPEEDR, VAL_GPIOI_PUPDR,
VAL_GPIOI_ODR, VAL_GPIOI_AFRL, VAL_GPIOI_AFRH}
#endif
};

编译

# git submodule update --init --recursive //子模块更新
# cd firmware
# make binaries RELEASE=1 # ls build/ -l
-rwxrwxr-x 1 thomas thomas 5257152 Nov 4 18:59 compound.elf
-rw-rw-r-- 1 thomas thomas 213040 Nov 4 18:59 com.zubax.gnss-2.2-4.0.16f8c7b.application.bin
-rw-rw-r-- 1 thomas thomas 278569 Nov 4 18:59 com.zubax.gnss-2.2-4.0.16f8c7b.compound.bin //包含bootloader和application
-rw-rw-r-- 1 thomas thomas 2560450 Nov 4 18:59 com.zubax.gnss.map

zubax_gnss移植到STM32F407的更多相关文章

  1. LwIP移植uCos+stm32f407

    LwIP同操作系统一起工作的时候模型如下: 1.TCP/IP协议栈和应用程序以分离的任务运行 2.应用同协议栈沟通是通过API函数调用(API函数调用事实上就是通过OS自带的进程间通信机制,由应用程序 ...

  2. ChibiOS/RT移植到STM32F407

    官网地址:http://www.chibios.org/dokuwiki/doku.php 下载源码 找到STM32F407的demos程序(chibios\demos\STM32\RT-STM32F ...

  3. freeRTOS V10.0.1移植到STM32F407标准库 - 环境Keil5

    最近因为工作需要用到FreeRTOS,其实开始本人内心是拒绝的因为自己只学习过UCOSIII还没实际上过什么大又复杂的工程,但是谁让FreeRTOS他是Free的呢公司成本考虑肯定是不会选择USOS的 ...

  4. zubax_gnss简介

    参考:https://docs.zubax.com/zubax_gnss 目录结构 bootloader:主要功能是升级application.加载application和初始化application ...

  5. 《基于Cortex-M4的ucOS-III的应用》课程设计 结题报告

    <基于Cortex-M4的ucOS-III的应用>课程设计 结题报告 小组成员姓名:20155211 解雪莹 20155217 杨笛 20155227 辜彦霖 指导教师:娄嘉鹏 一.设计方 ...

  6. STM32F407移植contiki2.6后使用LWIP库实现tcp client

    最近在做智能家居,物联网项目,用到了C下的contiki移植 经过一阵调试,终于在 STM32F407移植contiki2.6后使用LWIP库实现tcp client. 一路艰辛谁人知道....唯有留 ...

  7. STM32F407使用MFRC522射频卡调试及程序移植成功

    版权声明:转载请注明出处,谢谢 https://blog.csdn.net/Kevin_8_Lee/article/details/88865556 或  https://www.cnblogs.co ...

  8. STM32F407+STemwin学习笔记之STemwin移植补充Touch

    原文地址:http://www.cnblogs.com/NickQ/p/8857213.html 环境:keil5.20  STM32F407ZGT6  LCD(320*240)  STemwin:S ...

  9. STM32F407+STemwin学习笔记之STemwin移植

    原文链接:http://www.cnblogs.com/NickQ/p/8748011.html 环境:keil5.20  STM32F407ZGT6  LCD(320*240)  STemwin:S ...

随机推荐

  1. CentOS 7镜像下载

    官网下载链接:http://isoredirect.centos.org/centos/7/isos/x86_64/ step1: 进入下载页,选择阿里云站点进行下载 Actual  Country ...

  2. matlab学习笔记6--性能剖析

    一起来学matlab-matlab学习笔记6 性能剖析 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 <matlab 程序设计与综合应用>张德丰等著 感谢张老师的书籍, ...

  3. Java8 Collectors类的静态工厂方法

    预定义收集器的功能,就是那些可以从Collectors类提供的工厂方法(例如grouping By)创建的收集器. 它们主要提供了三大功能: •将流元素归约和汇总为一个值 •元素分组 •元素分区 •c ...

  4. byte类型的取值为什么是-128~127

    参考:https://blog.csdn.net/qq_22771739/article/details/84496115 https://blog.csdn.net/boatalways/artic ...

  5. Java之Java程序的基本结构

    Java的基本结构是 /** * 可以用来自动创建文档的注释 */ public class Hello { public static void main(String[] args) { // 向 ...

  6. 解决在manjaro下,vscode无法将chrome作为默认浏览器打开

    Same issue. The solution is simple. Find the name of the exec command, for google chrome in arch lin ...

  7. PHP命令行参数

    原文地址:http://php.swoole.com/wiki/PHP%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%8F%82%E6%95%B0   PHP命令行参数 目录 [隐藏]  ...

  8. php imagick 获取psd图层信息

    php imagick 获取psd图层信息<pre><?php$projectname = 'test';$im = new Imagick("test.psd" ...

  9. python sys模块(12)

    在python sys模块提供对解释器使用或维护的一些变量的访问,以及与解释器强烈交互的函数!关于sys模块在官网也有详细的介绍:python sys模块官方介绍. 一.sys模块简介 sys.arg ...

  10. windows下大数据开发环境搭建(1)——Java环境搭建

    一.Java 8下载 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 下载之后 ...