Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
逆着光、寻觅
rt-thread
提交
1c318baf
R
rt-thread
项目概览
逆着光、寻觅
/
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,发现更多精彩内容 >>
未验证
提交
1c318baf
编写于
3月 19, 2018
作者:
T
Tanek
提交者:
GitHub
3月 19, 2018
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #1301 from balanceTWK/master
[BSP] add other uart|添加其他串口
上级
92f63018
761c0a27
变更
7
展开全部
隐藏空白更改
内联
并排
Showing
7 changed file
with
2688 addition
and
2692 deletion
+2688
-2692
bsp/imxrt1052-evk/drivers/SConscript
bsp/imxrt1052-evk/drivers/SConscript
+1
-1
bsp/imxrt1052-evk/drivers/board.c
bsp/imxrt1052-evk/drivers/board.c
+1
-1
bsp/imxrt1052-evk/drivers/drv_uart.c
bsp/imxrt1052-evk/drivers/drv_uart.c
+215
-29
bsp/imxrt1052-evk/drivers/drv_uart.h
bsp/imxrt1052-evk/drivers/drv_uart.h
+3
-3
bsp/imxrt1052-evk/project.ewp
bsp/imxrt1052-evk/project.ewp
+2450
-2649
bsp/imxrt1052-evk/project.uvoptx
bsp/imxrt1052-evk/project.uvoptx
+13
-6
bsp/imxrt1052-evk/project.uvprojx
bsp/imxrt1052-evk/project.uvprojx
+5
-3
未找到文件。
bsp/imxrt1052-evk/drivers/SConscript
浏览文件 @
1c318baf
...
...
@@ -7,7 +7,7 @@ cwd = os.path.join(str(Dir('#')), 'drivers')
# add the general drivers.
src
=
Split
(
"""
board.c
us
art.c
drv_u
art.c
hyper_flash_boot.c
drv_sdram.c
"""
)
...
...
bsp/imxrt1052-evk/drivers/board.c
浏览文件 @
1c318baf
...
...
@@ -16,7 +16,7 @@
#include <rtthread.h>
#include "board.h"
#include "
us
art.h"
#include "
drv_u
art.h"
static
struct
rt_memheap
system_heap
;
...
...
bsp/imxrt1052-evk/drivers/
us
art.c
→
bsp/imxrt1052-evk/drivers/
drv_u
art.c
浏览文件 @
1c318baf
/*
* File :
us
art.c
* File :
drv_u
art.c
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2006-2013, RT-Thread Development Team
*
...
...
@@ -10,9 +10,10 @@
* Change Logs:
* Date Author Notes
* 2017-10-10 Tanek the first version
* 2018-03-17 laiyiketang Add other uart.
*/
#include <rtthread.h>
#include "
us
art.h"
#include "
drv_u
art.h"
#include "fsl_common.h"
#include "fsl_lpuart.h"
...
...
@@ -20,14 +21,21 @@
#ifdef RT_USING_SERIAL
#if !defined(RT_USING_UART0) && !defined(RT_USING_UART1) && \
!defined(RT_USING_UART2) && !defined(RT_USING_UART3) && \
!defined(RT_USING_UART4) && !defined(RT_USING_UART5) && \
!defined(RT_USING_UART6) && !defined(RT_USING_UART7)
/* GPIO外设时钟会在LPUART_Init中自动配置, 如果定义了以下宏则不会自动配置 */
#if defined(FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL) && FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL
#error "Please don't define 'FSL_SDK_DISABLE_DRIVER_CLOCK_CONTROL'!"
#endif
#if !defined(RT_USING_UART1) && !defined(RT_USING_UART2) && \
!defined(RT_USING_UART3) && !defined(RT_USING_UART4) && \
!defined(RT_USING_UART5) && !defined(RT_USING_UART6) && \
!defined(RT_USING_UART7) && !defined(RT_USING_UART8)
#error "Please define at least one UARTx"
#endif
#include <rtdevice.h>
/* imxrt uart driver */
...
...
@@ -55,7 +63,7 @@ void LPUART1_IRQHandler(void)
#if defined(RT_USING_UART2)
struct
rt_serial_device
serial2
;
void
US
ART2_IRQHandler
(
void
)
void
LPU
ART2_IRQHandler
(
void
)
{
uart_isr
(
&
serial2
);
}
...
...
@@ -65,7 +73,7 @@ void USART2_IRQHandler(void)
#if defined(RT_USING_UART3)
struct
rt_serial_device
serial3
;
void
UART3_IRQHandler
(
void
)
void
LP
UART3_IRQHandler
(
void
)
{
uart_isr
(
&
serial3
);
}
...
...
@@ -75,7 +83,7 @@ void UART3_IRQHandler(void)
#if defined(RT_USING_UART4)
struct
rt_serial_device
serial4
;
void
UART4_IRQHandler
(
void
)
void
LP
UART4_IRQHandler
(
void
)
{
uart_isr
(
&
serial4
);
}
...
...
@@ -84,7 +92,7 @@ void UART4_IRQHandler(void)
#if defined(RT_USING_UART5)
struct
rt_serial_device
serial5
;
void
US
ART5_IRQHandler
(
void
)
void
LPU
ART5_IRQHandler
(
void
)
{
uart_isr
(
&
serial5
);
}
...
...
@@ -94,7 +102,7 @@ void USART5_IRQHandler(void)
#if defined(RT_USING_UART6)
struct
rt_serial_device
serial6
;
void
UART6_IRQHandler
(
void
)
void
LP
UART6_IRQHandler
(
void
)
{
uart_isr
(
&
serial6
);
}
...
...
@@ -104,7 +112,7 @@ void UART6_IRQHandler(void)
#if defined(RT_USING_UART7)
struct
rt_serial_device
serial7
;
void
UART7_IRQHandler
(
void
)
void
LP
UART7_IRQHandler
(
void
)
{
uart_isr
(
&
serial7
);
}
...
...
@@ -114,7 +122,7 @@ void UART7_IRQHandler(void)
#if defined(RT_USING_UART8)
struct
rt_serial_device
serial8
;
void
UART8_IRQHandler
(
void
)
void
LP
UART8_IRQHandler
(
void
)
{
uart_isr
(
&
serial8
);
}
...
...
@@ -122,14 +130,70 @@ void UART8_IRQHandler(void)
#endif
/* RT_USING_UART8 */
static
const
struct
imxrt_uart
uarts
[]
=
{
#ifdef RT_USING_UART1
#ifdef RT_USING_UART1
{
LPUART1
,
LPUART1_IRQn
,
&
serial1
,
"uart1"
,
},
#endif
#endif
#ifdef RT_USING_UART2
{
LPUART2
,
LPUART2_IRQn
,
&
serial2
,
"uart2"
,
},
#endif
#ifdef RT_USING_UART3
{
LPUART3
,
LPUART3_IRQn
,
&
serial3
,
"uart3"
,
},
#endif
#ifdef RT_USING_UART4
{
LPUART4
,
LPUART4_IRQn
,
&
serial4
,
"uart4"
,
},
#endif
#ifdef RT_USING_UART5
{
LPUART5
,
LPUART5_IRQn
,
&
serial5
,
"uart5"
,
},
#endif
#ifdef RT_USING_UART6
{
LPUART6
,
LPUART6_IRQn
,
&
serial6
,
"uart6"
,
},
#endif
#ifdef RT_USING_UART7
{
LPUART7
,
LPUART7_IRQn
,
&
serial7
,
"uart7"
,
},
#endif
#ifdef RT_USING_UART8
{
LPUART8
,
LPUART8_IRQn
,
&
serial8
,
"uart8"
,
},
#endif
};
...
...
@@ -164,19 +228,20 @@ uint32_t BOARD_DebugConsoleSrcFreq(void)
*/
void
imxrt_uart_gpio_init
(
struct
imxrt_uart
*
uart
)
{
if
(
uart
->
uart_base
==
LPUART1
)
if
(
uart
->
uart_base
!=
RT_NULL
)
{
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
/* iomuxc clock (iomuxc_clk_enable): 0x03u */
#ifdef RT_USING_UART1
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
/* iomuxc clock (iomuxc_clk_enable): 0x03u */
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B0_12_LPUART1_TX
,
/* GPIO_AD_B0_12 is configured as LPUART1_TX */
0U
);
/* Software Input On Field: Input Path is determined by functionality */
IOMUXC_GPIO_AD_B0_12_LPUART1_TX
,
/* GPIO_AD_B0_12 is configured as LPUART1_TX */
0U
);
/* Software Input On Field: Input Path is determined by functionality */
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B0_13_LPUART1_RX
,
/* GPIO_AD_B0_13 is configured as LPUART1_RX */
0U
);
/* Software Input On Field: Input Path is determined by functionality */
IOMUXC_GPIO_AD_B0_13_LPUART1_RX
,
/* GPIO_AD_B0_13 is configured as LPUART1_RX */
0U
);
/* Software Input On Field: Input Path is determined by functionality */
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B0_12_LPUART1_TX
,
/* GPIO_AD_B0_12 PAD functional properties : */
0x10B0u
);
/* Slew Rate Field: Slow Slew Rate
IOMUXC_GPIO_AD_B0_12_LPUART1_TX
,
/* GPIO_AD_B0_12 PAD functional properties : */
0x10B0u
);
/* Slew Rate Field: Slow Slew Rate
Drive Strength Field: R0/6
Speed Field: medium(100MHz)
Open Drain Enable Field: Open Drain Disabled
...
...
@@ -185,8 +250,8 @@ void imxrt_uart_gpio_init(struct imxrt_uart *uart)
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B0_13_LPUART1_RX
,
/* GPIO_AD_B0_13 PAD functional properties : */
0x10B0u
);
/* Slew Rate Field: Slow Slew Rate
IOMUXC_GPIO_AD_B0_13_LPUART1_RX
,
/* GPIO_AD_B0_13 PAD functional properties : */
0x10B0u
);
/* Slew Rate Field: Slow Slew Rate
Drive Strength Field: R0/6
Speed Field: medium(100MHz)
Open Drain Enable Field: Open Drain Disabled
...
...
@@ -194,6 +259,128 @@ void imxrt_uart_gpio_init(struct imxrt_uart *uart)
Pull / Keep Select Field: Keeper
Pull Up / Down Config. Field: 100K Ohm Pull Down
Hyst. Enable Field: Hysteresis Disabled */
#endif
#ifdef RT_USING_UART2
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B1_02_LPUART2_TX
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B1_03_LPUART2_RX
,
0U
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B1_02_LPUART2_TX
,
0x10B0u
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B1_03_LPUART2_RX
,
0x10B0u
);
#endif
#ifdef RT_USING_UART3
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B1_06_LPUART3_TX
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B1_07_LPUART3_RX
,
0U
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B1_06_LPUART3_TX
,
0x10B0u
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B1_07_LPUART3_RX
,
0x10B0u
);
#endif
#ifdef RT_USING_UART4
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_B1_00_LPUART4_TX
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_B1_01_LPUART4_RX
,
0U
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_B1_00_LPUART4_TX
,
0x10B0u
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_B1_01_LPUART4_RX
,
0x10B0u
);
#endif
#ifdef RT_USING_UART5
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_B1_12_LPUART5_TX
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_B1_13_LPUART5_RX
,
0U
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_B1_12_LPUART5_TX
,
0x10B0u
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_B1_13_LPUART5_RX
,
0x10B0u
);
#endif
#ifdef RT_USING_UART6
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B0_02_LPUART6_TX
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B0_03_LPUART6_RX
,
0U
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B0_02_LPUART6_TX
,
0x10B0u
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B0_03_LPUART6_RX
,
0x10B0u
);
#endif
#ifdef RT_USING_UART7
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_EMC_31_LPUART7_TX
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_EMC_32_LPUART7_RX
,
0U
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_EMC_31_LPUART7_TX
,
0x10B0u
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_EMC_32_LPUART7_RX
,
0x10B0u
);
#endif
#ifdef RT_USING_UART8
CLOCK_EnableClock
(
kCLOCK_Iomuxc
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B1_10_LPUART8_TX
,
0U
);
IOMUXC_SetPinMux
(
IOMUXC_GPIO_AD_B1_11_LPUART8_RX
,
0U
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B1_10_LPUART8_TX
,
0x10B0u
);
IOMUXC_SetPinConfig
(
IOMUXC_GPIO_AD_B1_11_LPUART8_RX
,
0x10B0u
);
#endif
}
else
{
...
...
@@ -324,10 +511,10 @@ static void uart_isr(struct rt_serial_device *serial)
LPUART_Type
*
base
;
RT_ASSERT
(
serial
!=
RT_NULL
);
uart
=
(
struct
imxrt_uart
*
)
serial
->
parent
.
user_data
;
RT_ASSERT
(
uart
!=
RT_NULL
);
base
=
uart
->
uart_base
;
RT_ASSERT
(
base
!=
RT_NULL
);
...
...
@@ -339,7 +526,7 @@ static void uart_isr(struct rt_serial_device *serial)
{
rt_hw_serial_isr
(
serial
,
RT_SERIAL_EVENT_RX_IND
);
}
/* If RX overrun. */
if
(
LPUART_STAT_OR_MASK
&
base
->
STAT
)
{
...
...
@@ -363,7 +550,6 @@ int imxrt_hw_usart_init(void)
{
struct
serial_configure
config
=
RT_SERIAL_CONFIG_DEFAULT
;
int
i
;
for
(
i
=
0
;
i
<
sizeof
(
uarts
)
/
sizeof
(
uarts
[
0
]);
i
++
)
{
uarts
[
i
].
serial
->
ops
=
&
imxrt_uart_ops
;
...
...
bsp/imxrt1052-evk/drivers/
us
art.h
→
bsp/imxrt1052-evk/drivers/
drv_u
art.h
浏览文件 @
1c318baf
/*
* File :
us
art.h
* File :
drv_u
art.h
* This file is part of RT-Thread RTOS
* COPYRIGHT (C) 2009, RT-Thread Development Team
*
...
...
@@ -12,8 +12,8 @@
* 2017-10-10 Tanek the first version
*/
#ifndef __USART_H__
#define __USART_H__
#ifndef __
DRV_
USART_H__
#define __
DRV_
USART_H__
#include <rthw.h>
#include <rtthread.h>
...
...
bsp/imxrt1052-evk/project.ewp
浏览文件 @
1c318baf
此差异已折叠。
点击以展开。
bsp/imxrt1052-evk/project.uvoptx
浏览文件 @
1c318baf
...
...
@@ -73,7 +73,7 @@
<LExpSel>
0
</LExpSel>
</OPTXL>
<OPTFL>
<tvExp>
1
</tvExp>
<tvExp>
0
</tvExp>
<tvExpOptDlg>
0
</tvExpOptDlg>
<IsCurrentTarget>
1
</IsCurrentTarget>
</OPTFL>
...
...
@@ -101,7 +101,9 @@
<sRunDeb>
0
</sRunDeb>
<sLrtime>
0
</sLrtime>
<bEvRecOn>
1
</bEvRecOn>
<nTsel>
2
</nTsel>
<bSchkAxf>
0
</bSchkAxf>
<bTchkAxf>
0
</bTchkAxf>
<nTsel>
3
</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
...
...
@@ -164,11 +166,16 @@
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<bLintAuto>
0
</bLintAuto>
<Lin2Executable></Lin2Executable>
<Lin2ConfigFile></Lin2ConfigFile>
<bLin2Auto>
0
</bLin2Auto>
<bAutoGenD>
0
</bAutoGenD>
<bAuto2GenD>
0
</bAuto2GenD>
<LntExFlags>
0
</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
</TargetOption>
</Target>
...
...
bsp/imxrt1052-evk/project.uvprojx
浏览文件 @
1c318baf
...
...
@@ -8,11 +8,13 @@
<ToolsetNumber>
0x4
</ToolsetNumber>
<ToolsetName>
ARM-ADS
</ToolsetName>
<pCCUsed>
5060528::V5.06 update 5 (build 528)::ARMCC
</pCCUsed>
<uAC6>
0
</uAC6>
<TargetOption>
<TargetCommonOption>
<Device>
MIMXRT1052:M7
</Device>
<Vendor>
NXP
</Vendor>
<PackID>
NXP.iMXRT_DFP.1.0.1
</PackID>
<PackID>
NXP.iMXRT_DFP.1.0.2
</PackID>
<PackURL>
http://mcuxpresso.nxp.com/cmsis_pack/repo/
</PackURL>
<Cpu>
IRAM(0x20000000,0x00060000) IRAM2(0x00000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(SFPU) CLOCK(12000000) ELITTLE
</Cpu>
<FlashUtilSpec
/>
<StartupFile
/>
...
...
@@ -414,9 +416,9 @@
</Files>
<Files>
<File>
<FileName>
us
art.c
</FileName>
<FileName>
drv_u
art.c
</FileName>
<FileType>
1
</FileType>
<FilePath>
drivers\
us
art.c
</FilePath>
<FilePath>
drivers\
drv_u
art.c
</FilePath>
</File>
</Files>
<Files>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录