源码下载: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. AdaptIS: Adaptive Instance Selection Network

    AdaptIS: Adaptive Instance Selection Network 2019-09-19 12:58:07 Paper: https://arxiv.org/pdf/1909.0 ...

  2. Gitlab修改用户密码

    sudo gitlab-rails console production > user=User.where(name: "root").first > user.pa ...

  3. 通过OpenSSL来生成PEM格式的私钥、PKCS8格式的私钥、公钥|pfx格式的私钥、cer格式的公钥

    1.生成PEM格式RSA私钥 不对输出的文件内容进行加密 openssl genrsa -out private-rsa.key 对输出的文件内容进行加密(DES/AES128/AES256等) op ...

  4. shell关闭指定进程

    例如要关闭jupyter-notebook这个进程: ps -ef | grep jupyter-notebook | grep -v grep | cut -c 9-15 | xargs kill ...

  5. 修改LINUX 默认的22端口

    Linux远程端口修改操作手册 一.修改端口前需要检查selinux状态,并把selinux永久关闭 关闭方法: 1. 执行setenforce 0 2.  vi /etc/selinux/confi ...

  6. Shell获取字符串长度的多种方法总结

    摘自:https://www.jb51.net/article/121290.htm 前言 我们在日常工作中,对于求字符串操作在shell脚本中很常用,实现的方法有很多种,下面就来给大家归纳.汇总了求 ...

  7. Windows网络命令的相关指令(1)

    1.Ipconfig 该命令可以检查网络接口配置.如果用户系统不能到达远程主机,而同一系统的其他主机可以到达,那么用该命令对这种故障进行判断是有必要的.当主机能到达远程主机但不能到达本网主机时,则表示 ...

  8. 13 Spring 的事务控制

    1.事务的概念 理解事务之前,先讲一个你日常生活中最常干的事:取钱.  比如你去ATM机取1000块钱,大体有两个步骤:首先输入密码金额,银行卡扣掉1000元钱:然后ATM出1000元钱.这两个步骤必 ...

  9. [转帖]使用fastdfs搭建文件管理系统

    使用fastdfs搭建文件管理系统 https://www.jianshu.com/p/4e80069c84d3 今天同事说他们的系统用到了这个分布式文件管理系统. 一.FastDFS介绍 FastD ...

  10. 【转帖】漏洞数量242:15,英特尔和AMD CPU谁更安全?

    漏洞数量242:15,英特尔和AMD CPU谁更安全? http://www.eetop.cn/cpu_soc/6946340.html 越来越多的用户开始怀疑哪种处理器可以最好地保护他们的计算机,数 ...