Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
卖小麦←_←
rt-thread
提交
1d77744a
R
rt-thread
项目概览
卖小麦←_←
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / rt-thread
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1d77744a
编写于
10月 14, 2022
作者:
S
sheltonyu
提交者:
mysterywolf
10月 16, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
optimize emac and usart driver code
上级
56794960
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
2 deletion
+16
-2
bsp/at32/libraries/rt_drivers/drv_emac.c
bsp/at32/libraries/rt_drivers/drv_emac.c
+15
-1
bsp/at32/libraries/rt_drivers/drv_usart.c
bsp/at32/libraries/rt_drivers/drv_usart.c
+1
-1
未找到文件。
bsp/at32/libraries/rt_drivers/drv_emac.c
浏览文件 @
1d77744a
...
...
@@ -8,6 +8,7 @@
* 2022-05-16 shelton first version
* 2022-07-11 shelton optimize code to improve network throughput
* performance
* 2022-10-15 shelton optimize code
*/
#include "drv_emac.h"
...
...
@@ -355,6 +356,7 @@ static rt_err_t rt_at32_emac_init(rt_device_t dev)
emac_control_para_init
(
&
mac_control_para
);
mac_control_para
.
auto_nego
=
EMAC_AUTO_NEGOTIATION_ON
;
if
(
emac_phy_init
(
&
mac_control_para
)
==
ERROR
)
{
LOG_E
(
"emac hardware init failed"
);
...
...
@@ -376,8 +378,19 @@ static rt_err_t rt_at32_emac_init(rt_device_t dev)
/* set emac dma tx link list */
emac_dma_descriptor_list_address_set
(
EMAC_DMA_TRANSMIT
,
dma_tx_dscr_tab
,
tx_buff
,
EMAC_NUM_TX_BUF
);
/* emac interrupt init */
emac_dma_para_init
(
&
dma_control_para
);
dma_control_para
.
rsf_enable
=
TRUE
;
dma_control_para
.
tsf_enable
=
TRUE
;
dma_control_para
.
osf_enable
=
TRUE
;
dma_control_para
.
aab_enable
=
TRUE
;
dma_control_para
.
usp_enable
=
TRUE
;
dma_control_para
.
fb_enable
=
TRUE
;
dma_control_para
.
flush_rx_disable
=
TRUE
;
dma_control_para
.
rx_dma_pal
=
EMAC_DMA_PBL_32
;
dma_control_para
.
tx_dma_pal
=
EMAC_DMA_PBL_32
;
dma_control_para
.
priority_ratio
=
EMAC_DMA_2_RX_1_TX
;
emac_dma_config
(
&
dma_control_para
);
/* emac interrupt init */
emac_dma_interrupt_enable
(
EMAC_DMA_INTERRUPT_NORMAL_SUMMARY
,
TRUE
);
emac_dma_interrupt_enable
(
EMAC_DMA_INTERRUPT_RX
,
TRUE
);
nvic_irq_enable
(
EMAC_IRQn
,
0x07
,
0
);
...
...
@@ -467,6 +480,7 @@ rt_err_t rt_at32_emac_tx(rt_device_t dev, struct pbuf *p)
#ifdef EMAC_TX_DUMP
dump_hex
(
p
->
payload
,
p
->
tot_len
);
#endif
/* prepare transmit descriptors to give to dma */
LOG_D
(
"transmit frame length :%d"
,
p
->
tot_len
);
...
...
bsp/at32/libraries/rt_drivers/drv_usart.c
浏览文件 @
1d77744a
...
...
@@ -6,6 +6,7 @@
* Change Logs:
* Date Author Notes
* 2022-05-16 shelton first version
* 2022-10-15 shelton optimize code
*/
#include "drv_common.h"
...
...
@@ -228,7 +229,6 @@ static void usart_isr(struct rt_serial_device *serial) {
if
(
usart_flag_get
(
usart_instance
->
usart_x
,
USART_RDBF_FLAG
)
!=
RESET
)
{
rt_hw_serial_isr
(
serial
,
RT_SERIAL_EVENT_RX_IND
);
usart_flag_clear
(
usart_instance
->
usart_x
,
USART_RDBF_FLAG
);
}
else
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录