Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wwsmg1
rt-thread
提交
3730df24
R
rt-thread
项目概览
wwsmg1
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3730df24
编写于
8月 27, 2019
作者:
T
tyustli
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、[bsp] [imxrt] rename docs imxrt -> i.MX RT
2、[bsp] [stm32] fix drv_can assert bug
上级
40bb254c
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
31 addition
and
26 deletion
+31
-26
bsp/imxrt/docs/IMXRT系列BSP制作教程.md
bsp/imxrt/docs/IMXRT系列BSP制作教程.md
+15
-13
bsp/imxrt/docs/IMXRT系列BSP外设驱动使用教程.md
bsp/imxrt/docs/IMXRT系列BSP外设驱动使用教程.md
+1
-1
bsp/imxrt/docs/IMXRT系列外设驱动添加指南.md
bsp/imxrt/docs/IMXRT系列外设驱动添加指南.md
+5
-5
bsp/imxrt/docs/IMXRT系列驱动介绍.md
bsp/imxrt/docs/IMXRT系列驱动介绍.md
+1
-1
bsp/stm32/libraries/HAL_Drivers/drv_can.c
bsp/stm32/libraries/HAL_Drivers/drv_can.c
+9
-6
未找到文件。
bsp/imxrt/docs/IMXRT系列BSP制作教程.md
浏览文件 @
3730df24
#
IMX
RT 系列 BSP 制作教程
#
i.MX
RT 系列 BSP 制作教程
为了让广大开发者更好、更方便地使用 BSP 进行开发,RT-Thread 开发团队重新整理了现有的 IMXRT 系列的 BSP,推出了新的 BSP 框架。新的 BSP 框架在易用性、移植便利性、驱动完整性、代码规范性等方面都有较大提升,在新的 BSP 框架下进行开发,可以大大提高应用的开发效率。
为了让广大开发者更好、更方便地使用 BSP 进行开发,RT-Thread 开发团队重新整理了现有的 i.MX RT 系列的 BSP,推出了新的 BSP 框架。新的 BSP 框架在易用性、移植便利性、驱动完整性、代码规范性等方面都有较大提升,在新的 BSP 框架下进行开发,可以大大提高应用的开发效率。
和 RT-Thread 以往提供的 i.MX RT 的 BSP 不同,新的框架将不会出现一个 BSP 通过 Env 配置来适配不同开发平台的情况。而是将这些不同的开发平台通过不同的 BSP 文件展示出来。这种方式不仅大大降低了代码的耦合性,减少了 BSP 的维护成本,而且让开发者可以更容易地找到自己需要的资源。
和 RT-Thread 以往提供的 BSP 不同,在新的 BSP 文件夹中将不会包含固件库、外设驱动等可以被多个 BSP 引用的代码文件。而是将这些通用的文件统一存放在 Libraries 文件夹中,通过在特定 BSP 中引用这些文件的方式,来包含 BSP 中所需的库文件或者驱动文件。这种方式不仅大大提高了代码复用率,降低了 BSP 的维护成本,而且可以更方便地给开发者提供更丰富的驱动文件,让开发者可以更容易地找到自己需要的资源。
新的 BSP 框架还引入了 MCUXpresso Config Tools 工具,可以使用该工具来对引脚和时钟进行配置。MCUXpresso 工具提供了图形化的配置界面,这种图形化的配置方式对开发者来说更加直观,不仅可以让开发者灵活地配置 BSP 中使用的资源,并且可以让开发者对资源的使用情况一目了然。
...
...
@@ -18,19 +19,19 @@ BSP 框架结构如下图所示:
![
BSP 框架图
](
./figures/frame.png
)
IMX
RT 系列的 BSP 由三部分组成,分别是官方 SDK、通用驱动和特定开发板 BSP,下面的表格以 1050 系列 BSP 为例介绍这三个部分:
i.MX
RT 系列的 BSP 由三部分组成,分别是官方 SDK、通用驱动和特定开发板 BSP,下面的表格以 1050 系列 BSP 为例介绍这三个部分:
| 项目 | 文件夹 | 说明 |
| - | - | :-- |
| 官方 SDK | imxrt/libraries/MIMXRT1050 | 1050 系列官方 SDK |
| drivers | imxrt/libraries/drivers |
IMX
RT 系列通用 RTT 驱动 |
| drivers | imxrt/libraries/drivers |
i.MX
RT 系列通用 RTT 驱动 |
| 特定开发板 BSP | imxrt/imxrt1052-nxp-evk | NXP 官方 imxrt1050 EVK 开发板 BSP |
## 2. 知识准备
制作一个 BSP 的过程就是构建一个新系统的过程,因此想要制作出好用的 BSP,要对 RT-Thread 系统的构建过程有一定了解,需要的知识准备如下所示:
-
掌握 i
mxrt
系列 BSP 的使用方法
-
掌握 i
.MX RT
系列 BSP 的使用方法
了解 BSP 的使用方法,可以阅读
[
BSP 说明文档
](
../README.md
)
中使用教程表格内的文档。了解外设驱动的添加方法可以参考《外设驱动添加指南》。
...
...
@@ -48,7 +49,7 @@ IMXRT 系列的 BSP 由三部分组成,分别是官方 SDK、通用驱动和
-
熟悉 MCUXpresso 工具的使用
在新的 i
mxrt
系列 BSP 中利用了 MCUXpresso 工具对底层硬件进行配置,因此需要了解 MCUXpresso 工具的使用方法。
在新的 i
.MX RT
系列 BSP 中利用了 MCUXpresso 工具对底层硬件进行配置,因此需要了解 MCUXpresso 工具的使用方法。
## 3. BSP 制作方法
...
...
@@ -127,7 +128,7 @@ BSP 的制作过程分为如下五个步骤:
| 宏定义 | 意义 | 格式 |
| ------------------ | -------- | ------------------ |
| SOC_MIMXRT1052CVL5B | BSP 芯片型号 | SOC_MIMXRT10xxx |
| SOC_IMXRT1050_SERIES | BSP 芯片系列 | SOC_IMXRT10xx_SERIES,
IMX
RT 目前包括1015、1020、1050、1060及1064系列 |
| SOC_IMXRT1050_SERIES | BSP 芯片系列 | SOC_IMXRT10xx_SERIES,
i.MX
RT 目前包括1015、1020、1050、1060及1064系列 |
关于 BSP 上的外设支持选项,一个初次提交的 BSP 仅仅需要支持 GPIO 驱动和串口驱动即可,因此在配置选项中只需保留这两个驱动配置项,如下图所示:
...
...
@@ -215,11 +216,11 @@ BSP 的制作过程分为如下五个步骤:
## 4. 规范
本章节介绍 RT-Thread
IMX
RT 系列 BSP 制作与提交时应当遵守的规范 。开发人员在 BSP 制作完成后,可以根据本规范提出的检查点对制作的 BSP 进行检查,确保 BSP 在提交前有较高的质量 。
本章节介绍 RT-Thread
i.MX
RT 系列 BSP 制作与提交时应当遵守的规范 。开发人员在 BSP 制作完成后,可以根据本规范提出的检查点对制作的 BSP 进行检查,确保 BSP 在提交前有较高的质量 。
### 1. BSP 制作规范
IMXRT BSP 的制作规范主要分为 3 个方面:工程配置,ENV 配置和 IDE 配置。在已有的 IMX
RT 系列 BSP 的模板中,已经根据下列规范对模板进行配置。在制作新 BSP 的过程中,拷贝模板进行修改时,需要注意的是不要修改这些默认的配置。BSP 制作完成后,需要对新制作的 BSP 进行功能测试,功能正常后再进行代码提交。
i.MX RT BSP 的制作规范主要分为 3 个方面:工程配置,ENV 配置和 IDE 配置。在已有的 i.MX
RT 系列 BSP 的模板中,已经根据下列规范对模板进行配置。在制作新 BSP 的过程中,拷贝模板进行修改时,需要注意的是不要修改这些默认的配置。BSP 制作完成后,需要对新制作的 BSP 进行功能测试,功能正常后再进行代码提交。
下面将详细介绍 BSP 的制作规范。
...
...
@@ -227,7 +228,7 @@ IMXRT BSP 的制作规范主要分为 3 个方面:工程配置,ENV 配置和
-
遵从 RT-Thread 编码规范,代码注释风格统一
-
main 函数功能保持一致
-
如果有 LED 的话,main 函数里
** 只放一个 **
LED 1HZ 闪烁的程序
-
如果有 LED 的话,main 函数里
只放一个
LED 1HZ 闪烁的程序
-
在
`rt_hw_board_init`
中需要完成堆的初始化:调用
`rt_system_heap_init`
-
默认只初始化 GPIO 驱动和 FinSH 对应的串口驱动,不使用 DMA
-
当使能板载外设驱动时,应做到不需要修改代码就能编译下载使用
...
...
@@ -253,11 +254,11 @@ IMXRT BSP 的制作规范主要分为 3 个方面:工程配置,ENV 配置和
### 2. BSP 提交规范
-
提交前请认真修改 BSP 的 README.md 文件,README.md 文件的外设支持表单只填写 BSP 支持的外设,可参考其他 BSP 填写。查看文档
[
《IMXRT 系列驱动介绍》
](
./IMX
RT
系列驱动介绍. md) 了解驱动分类。
-
提交前请认真修改 BSP 的 README.md 文件,README.md 文件的外设支持表单只填写 BSP 支持的外设,可参考其他 BSP 填写。查看文档
[
i.MX RT 系列驱动介绍》
](
./i.MX
RT 系列驱动介绍. md) 了解驱动分类。
-
提交 BSP 分为 2 个阶段提交:
-
第一阶段:基础 BSP 包括串口驱动和 GPIO 驱动,能运行 FinSH 控制台。完成 MDK4、MDK5 、IAR 和 GCC 编译器支持,如果芯片不支持某款编译器(比如 MDK4)可以不用做。 BSP 的 README.md 文件需要填写第二阶段要完成的驱动。
-
第二阶段:完成板载外设驱动支持,所有板载外设使用 menuconfig 配置后就能直接使用。若开发板没有板载外设,则此阶段可以不用完成。不同的驱动也要分开提交,方便 review 和合并。
-
只提交 BSP 必要的文件,删除无关的中间文件,能够提交的文件请对照其他 BSP。
-
提交
IMX
RT 不同系列的 Library 库时,请参考 1050 系列的 FSL 库。
-
提交
i.MX
RT 不同系列的 Library 库时,请参考 1050 系列的 FSL 库。
-
提交前要对 BSP 进行编译测试,确保在不同编译器下编译正常。
-
提交前要对 BSP 进行功能测试,确保 BSP 的在提交前符合工程配置章节中的要求。
\ No newline at end of file
bsp/imxrt/docs/IMXRT系列BSP外设驱动使用教程.md
浏览文件 @
3730df24
...
...
@@ -12,7 +12,7 @@
## 前提要求
-
学会如何使用 ENV 工具,参考:
[
RT-Thread env 工具用户手册
](
https://www.rt-thread.org/document/site/
rtthread-development-guide/rtthread-tool-manual/env/env-user-manual
/
)
-
学会如何使用 ENV 工具,参考:
[
RT-Thread env 工具用户手册
](
https://www.rt-thread.org/document/site/
programming-manual/env/env
/
)
## 如何使用更多的板载资源
...
...
bsp/imxrt/docs/IMXRT系列外设驱动添加指南.md
浏览文件 @
3730df24
#
IMX
RT 系列外设驱动添加指南
#
i.MX
RT 系列外设驱动添加指南
## 1. 简介
本文档是为需要给现有的
IMX
RT BSP 添加更多外设驱动的开发者准备的。通过阅读本文,开发者可以按照自己的实际情况给现有 BSP 添加自己需要的驱动。
本文档是为需要给现有的
i.MX
RT BSP 添加更多外设驱动的开发者准备的。通过阅读本文,开发者可以按照自己的实际情况给现有 BSP 添加自己需要的驱动。
## 2. 前提要求
-
熟练使用 ENV 工具,参考:
[
RT-Thread env 工具用户手册
](
https://www.rt-thread.org/document/site/
rtthread-development-guide/rtthread-tool-manual/env/env-user-manual
/
)
-
熟练使用 ENV 工具,参考:
[
RT-Thread env 工具用户手册
](
https://www.rt-thread.org/document/site/
programming-manual/env/env
/
)
-
熟悉 Kconfig 语法
-
熟悉 MCUXpresso 工具
-
对 RT-Thread 设备驱动框架有一定了解
...
...
@@ -63,9 +63,9 @@
## 4. 注意事项
-
部分驱动如果没有适配 BSP 所属的
IMX
RT 系列,请等待 RT-Thread 团队更新。
-
部分驱动如果没有适配 BSP 所属的
i.MX
RT 系列,请等待 RT-Thread 团队更新。
-
驱动文件对
IMXRT 系列的支持情况可以查看
[
IMX
RT系列驱动介绍文档
](
./IMXRT系列驱动介绍.md
)
。
-
驱动文件对
i.MX RT 系列的支持情况可以查看
[
i.MX
RT系列驱动介绍文档
](
./IMXRT系列驱动介绍.md
)
。
-
对于驱动文件或文档说明,有任何建议或者意见,欢迎反馈到
[
RT_Thread GitHub
](
https://github.com/RT-Thread/rt-thread
)
网站或
[
RT-Thread 官方论坛
](
https://www.rt-thread.org/qa/forum.php
)
。
...
...
bsp/imxrt/docs/IMXRT系列驱动介绍.md
浏览文件 @
3730df24
...
...
@@ -24,7 +24,7 @@
## 2. 外设驱动的使用方法
当前 RT-Thread 提供的驱动库已经支持
IMX
RT 多个系列的 BSP。点击下表中的驱动名称,即可跳转到对应驱动框架的介绍文档。开发者可以通过阅读相关资料,了解如何在应用开发中通过设备驱动框架来使用这些外设驱动。
当前 RT-Thread 提供的驱动库已经支持
i.MX
RT 多个系列的 BSP。点击下表中的驱动名称,即可跳转到对应驱动框架的介绍文档。开发者可以通过阅读相关资料,了解如何在应用开发中通过设备驱动框架来使用这些外设驱动。
### 2.1 片上外设
...
...
bsp/stm32/libraries/HAL_Drivers/drv_can.c
浏览文件 @
3730df24
...
...
@@ -377,8 +377,6 @@ static int _can_sendmsg(struct rt_can_device *can, const void *buf, rt_uint32_t
HAL_CAN_StateTypeDef
state
=
hcan
->
State
;
/* Check the parameters */
RT_ASSERT
(
IS_CAN_IDTYPE
(
pmsg
->
ide
));
RT_ASSERT
(
IS_CAN_RTR
(
pmsg
->
rtr
));
RT_ASSERT
(
IS_CAN_DLC
(
pmsg
->
len
));
if
((
state
==
HAL_CAN_STATE_READY
)
||
...
...
@@ -515,10 +513,15 @@ static int _can_recvmsg(struct rt_can_device *can, void *buf, rt_uint32_t fifo)
/* get len */
pmsg
->
len
=
rxheader
.
DLC
;
/* get hdr */
#ifdef BSP_USING_CAN2
pmsg
->
hdr
=
rxheader
.
FilterMatchIndex
;
#else
pmsg
->
hdr
=
(
rxheader
.
FilterMatchIndex
+
1
)
>>
1
;
if
(
hcan
->
Instance
==
CAN1
)
{
pmsg
->
hdr
=
(
rxheader
.
FilterMatchIndex
+
1
)
>>
1
;
}
#ifdef CAN2
else
if
(
hcan
->
Instance
==
CAN2
)
{
pmsg
->
hdr
=
(
rxheader
.
FilterMatchIndex
>>
1
)
+
14
;
}
#endif
return
RT_EOK
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录