ChibiOS如何建立自己的板级(board)配置
一、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)配置相关推荐
- Uboot 板级初始化流程and so on
-------------------------- 本文以U-boot 2018.09源码 mips mt7621进行举例说明. 此预期的理论初始化流程适用于全U-boot和SPL(Secondar ...
- 对于Android不同项目使用同一工程时的板级设置
我们经常会遇到多个项目使用同一工程的情况,对于android源码,动辄就几十G,采用建立多个工程显然不可取.只能考虑添加板级来解决改问题.板级的关键在于通过lunch选项,选择不同的板级,最终选择编译 ...
- i.MX6 u-boot 怎么确定板级头文件
/*********************************************************************** i.MX6 u-boot 怎么确定板级头文件* 说明: ...
- OpenBoard的板级支持包(BSP)开发召集令
OpenBoard的板级支持包(BSP)开发召集令 什么是"板级支持包"? 在嵌入式系统中,Board Support Package(简称BSP,中译板支持包)是实现特定的支持代 ...
- linux x86板级文件,Linux driver 板级文件跟踪一般方法
/*********************************************************************************** * Linux driver ...
- 关于利用IBERT核对GTX收发器板级测试的原理与过程详解
一.概述 IBERT(集成误码率测试仪)是xilinx为7系列FPGA GTX收发器设计的,用于评估和监控GTX收发器.IBERT包括在FPGA逻辑中实现的模式生成器和检查器,以及对端口的访问和GTX ...
- kernel 3.2.0 上加入自己的板级文件
第一步.复制自己的参考的板级文件 cp arch/arm/mach-omap2/board-am335xevm.c arch/arm/mach-omap2/board-aplex_ECM_5412.c ...
- HyperLynx(十)BoardSim和PCB板级仿真分析(一)
BoardSim和PCB板级仿真分析(一) 1.PCB文件的转换 当前 PCB 设计软件非常多,包含 PADS.Mentor WG.Cadence.Zuken.AD 等.不同软件设计的PCB保存的文件 ...
- linux 为开发板添加板级文件config.h
新的板子 需要在之前的板子基础上 做一些改动 首先就是要配置自己的板级文件 参考陈富林博客 这个写的很详细 https://www.cnblogs.com/chenfulin5/p/6393415 ...
最新文章
- 愿...统一沟通...易行天下!
- gEdit: 打造简洁,小巧的编程环境
- EF Core的一个紧急bug,我这样修改
- qiankun 传统项目配置_微前端 qiankun 项目实践
- VSCode Debug
- IDEA14创建Maven管理的Java Web项目
- python中文分词与词云画像_使用Python绘制肖像词云
- Html图片懒加载动画,带加载进度的Web图片懒加载组件Lazyload
- 拓端tecdat|R语言ggmap空间可视化机动车碰撞–街道地图热力图
- c语言编写打字母游戏代码,求一个用C语言编写的小游戏代码
- 农业大数据中心建设可行性方案
- 【干货分享】嫁给爱情字体设计创意
- [BZOJ2959] 长跑
- openpose的搭建
- 089 定积分之双纽线、心形线、摆线
- ASO优化:如何提高App Store应用商店中排名?
- cmd运行java文件汉字乱码的问题
- Cityscapes:适用于汽车自动驾驶的训练数据集
- JCreator的配置
- linux云计算基础(云计算介绍)
热门文章
- 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛错题笔记
- python真实收入曝光_程序员工资很高吗?资深HR透露真实收入,网友:说的很现实...
- 从Page结构来看达梦数据库是不是纯自研
- 【C语言】a+aa+aaa+...+aa...a=?
- 记录Access deined: authorize failure的坑
- 应用示例:图像文字识别
- k-近邻算法 解决 动态字体反爬
- 产品运营数据分析—SPSS数据分组案例
- android百度识别,百度OCR文字识别-Android安全校验
- 关键词生成的相关资源