一、ChibiOS的编译体系背景:

ChibiOS的编译体系是非常清晰的,由如下几部分构成:
APP层、HAL层、BOARD层、OS层、PLATFORM层、CPU层等,每层一般都有对应的makefile文件分别构建。
比如在demo中的STM32F4 DISCOVERY板子的工程中,
platform使用了/os/hal/ports/STM32/STM32F4xx/platform.mk
board使用了/os/hal/boards/ST_STM32F4_DISCOVERY/board.mk
cpu使用了/os/common/ports/ARMCMx/compilers/GCC/mk/port_v7m.mk等
因此,为了构建起我们自己定义的板级,我们需要修改board部分的框架并自己实现一套类似的结构

二、文件准备:

这里我们以STM32F4的样板工程为例,我们可以看到上面board的mk目录,进入/os/hal/boards/ST_STM32F4_DISCOVERY目录,可以看到如下文件:

  • board.c            该文件实现了板级的底层初始化代码,包括IO等
  • board.h            该文件定义了板级的配置,主要就是IO的配置情况,包括输入输出、复用关系等
  • board.mk         该文件是本目录的编译文件,用于组织形成board包
  • cfg                   该文件夹是用于IDE,这里不使用

由此,我们可以拷贝整个这个文件夹,为了以后使用方便,我们可以将新的文件夹同样放在/os/hal/boards/目录下,取名myboard

三、文件修改:

我们可以修改board.h中所定义的板子名字,由宏BOARD_NAME定义。对于IO口的定义,我们可以按照里面的例子进行修改,这里要注意的是,修改的时候一定要修改全面,不能只修改几个定义,很多的定义是环环相扣的,虽然有点啰嗦,但是后面使用的时候就会很方便,毕竟板子一般是固定的,定义一次就可以了,看得时候也会很清晰。

对于board.c文件,我们基本上不用做太多的修改,当然我们也可以在里面加入自己想要的实现的代码,但目前并不建议修改。

最后关键是要修改board.mk文件,里面定义了本目录的路径,需要修改BOARDSRC这个变量为当前的目录下的c文件(目前就一个board.c),BOARDINC这个变量修改为当前的目录(到时候会通过这个变量来寻找board.h这个头文件)

文件的修改就到这里

四、将自定义板级包添加到make中

上面已经完成了自定义板级包的制作,现在我们可以将它添加到我们的make中了,修改自己的工程目录下的Makefile文件,找到# HAL-OSAL files (optional).这一行,在下面找到原来的board.mk,然后替换为我们刚刚定义的board.mk文件即可

保存,编译即可

ChibiOS如何建立自己的板级(board)配置相关推荐

  1. Uboot 板级初始化流程and so on

    -------------------------- 本文以U-boot 2018.09源码 mips mt7621进行举例说明. 此预期的理论初始化流程适用于全U-boot和SPL(Secondar ...

  2. 对于Android不同项目使用同一工程时的板级设置

    我们经常会遇到多个项目使用同一工程的情况,对于android源码,动辄就几十G,采用建立多个工程显然不可取.只能考虑添加板级来解决改问题.板级的关键在于通过lunch选项,选择不同的板级,最终选择编译 ...

  3. i.MX6 u-boot 怎么确定板级头文件

    /*********************************************************************** i.MX6 u-boot 怎么确定板级头文件* 说明: ...

  4. OpenBoard的板级支持包(BSP)开发召集令

    OpenBoard的板级支持包(BSP)开发召集令 什么是"板级支持包"? 在嵌入式系统中,Board Support Package(简称BSP,中译板支持包)是实现特定的支持代 ...

  5. linux x86板级文件,Linux driver 板级文件跟踪一般方法

    /*********************************************************************************** * Linux driver ...

  6. 关于利用IBERT核对GTX收发器板级测试的原理与过程详解

    一.概述 IBERT(集成误码率测试仪)是xilinx为7系列FPGA GTX收发器设计的,用于评估和监控GTX收发器.IBERT包括在FPGA逻辑中实现的模式生成器和检查器,以及对端口的访问和GTX ...

  7. kernel 3.2.0 上加入自己的板级文件

    第一步.复制自己的参考的板级文件 cp arch/arm/mach-omap2/board-am335xevm.c arch/arm/mach-omap2/board-aplex_ECM_5412.c ...

  8. HyperLynx(十)BoardSim和PCB板级仿真分析(一)

    BoardSim和PCB板级仿真分析(一) 1.PCB文件的转换 当前 PCB 设计软件非常多,包含 PADS.Mentor WG.Cadence.Zuken.AD 等.不同软件设计的PCB保存的文件 ...

  9. linux 为开发板添加板级文件config.h

    新的板子  需要在之前的板子基础上 做一些改动  首先就是要配置自己的板级文件 参考陈富林博客 这个写的很详细 https://www.cnblogs.com/chenfulin5/p/6393415 ...

最新文章

  1. 愿...统一沟通...易行天下!
  2. gEdit: 打造简洁,小巧的编程环境
  3. EF Core的一个紧急bug,我这样修改
  4. qiankun 传统项目配置_微前端 qiankun 项目实践
  5. VSCode Debug
  6. IDEA14创建Maven管理的Java Web项目
  7. python中文分词与词云画像_使用Python绘制肖像词云
  8. Html图片懒加载动画,带加载进度的Web图片懒加载组件Lazyload
  9. 拓端tecdat|R语言ggmap空间可视化机动车碰撞–街道地图热力图
  10. c语言编写打字母游戏代码,求一个用C语言编写的小游戏代码
  11. 农业大数据中心建设可行性方案
  12. 【干货分享】嫁给爱情字体设计创意
  13. [BZOJ2959] 长跑
  14. openpose的搭建
  15. 089 定积分之双纽线、心形线、摆线
  16. ASO优化:如何提高App Store应用商店中排名?
  17. cmd运行java文件汉字乱码的问题
  18. Cityscapes:适用于汽车自动驾驶的训练数据集
  19. JCreator的配置
  20. linux云计算基础(云计算介绍)

热门文章

  1. 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛错题笔记
  2. python真实收入曝光_程序员工资很高吗?资深HR透露真实收入,网友:说的很现实...
  3. 从Page结构来看达梦数据库是不是纯自研
  4. 【C语言】a+aa+aaa+...+aa...a=?
  5. 记录Access deined: authorize failure的坑
  6. 应用示例:图像文字识别
  7. k-近邻算法 解决 动态字体反爬
  8. 产品运营数据分析—SPSS数据分组案例
  9. android百度识别,百度OCR文字识别-Android安全校验
  10. 关键词生成的相关资源