Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
tools-mirror
Micropython
提交
5ff265a3
M
Micropython
项目概览
tools-mirror
/
Micropython
12 个月 前同步成功
通知
0
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
Micropython
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5ff265a3
编写于
8月 14, 2020
作者:
J
Jim Mussared
提交者:
Damien George
9月 08, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
stm32/modbluetooth_hci: Use a static mp_irq_obj_t for BT HCI UART IRQ.
So that the IRQ handler does not need to be traced by the GC.
上级
23109988
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
9 deletion
+9
-9
ports/stm32/modbluetooth_hci.c
ports/stm32/modbluetooth_hci.c
+9
-9
未找到文件。
ports/stm32/modbluetooth_hci.c
浏览文件 @
5ff265a3
...
...
@@ -135,6 +135,7 @@ int mp_bluetooth_hci_uart_readchar(void) {
#include "uart.h"
pyb_uart_obj_t
mp_bluetooth_hci_uart_obj
;
mp_irq_obj_t
mp_bluetooth_hci_uart_irq_obj
;
static
uint8_t
hci_uart_rxbuf
[
512
];
...
...
@@ -163,15 +164,14 @@ int mp_bluetooth_hci_uart_set_baudrate(uint32_t baudrate) {
}
int
mp_bluetooth_hci_uart_activate
(
void
)
{
// Interrupt on RX chunk received (idle)
// Trigger stack poll when this happens
mp_obj_t
uart_irq_fn
=
mp_load_attr
(
MP_OBJ_FROM_PTR
(
&
mp_bluetooth_hci_uart_obj
),
MP_QSTR_irq
);
mp_obj_t
uargs
[]
=
{
MP_OBJ_FROM_PTR
(
&
mp_uart_interrupt_obj
),
MP_OBJ_NEW_SMALL_INT
(
UART_FLAG_IDLE
),
mp_const_true
,
};
mp_call_function_n_kw
(
uart_irq_fn
,
3
,
0
,
uargs
);
// Add IRQ handler for IDLE (i.e. packet finished).
uart_irq_config
(
&
mp_bluetooth_hci_uart_obj
,
false
);
mp_irq_init
(
&
mp_bluetooth_hci_uart_irq_obj
,
&
uart_irq_methods
,
MP_OBJ_FROM_PTR
(
&
mp_bluetooth_hci_uart_obj
));
mp_bluetooth_hci_uart_obj
.
mp_irq_obj
=
&
mp_bluetooth_hci_uart_irq_obj
;
mp_bluetooth_hci_uart_obj
.
mp_irq_trigger
=
UART_FLAG_IDLE
;
mp_bluetooth_hci_uart_irq_obj
.
handler
=
MP_OBJ_FROM_PTR
(
&
mp_uart_interrupt_obj
);
mp_bluetooth_hci_uart_irq_obj
.
ishard
=
true
;
uart_irq_config
(
&
mp_bluetooth_hci_uart_obj
,
true
);
mp_bluetooth_hci_controller_init
();
mp_bluetooth_hci_controller_activate
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录