|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我在rt_hw_board_init函数里面对外设还有我的板子上的一些模块进行初始化,有些模块需要进行微秒延时或者毫秒延时,但是我配置了定时器以后发现延时函数进不了中断,后来发现是系统启动前关闭了总中断导致的,如下:
6 Z. |& Y% S# a/ D' F
% h$ r+ V* Y W3 l% Yint rtthread_startup(void) @0 u% P- Q/ V# w; X
{
) n/ u1 s+ q9 A: R" ]rt_hw_interrupt_disable();//关闭了总中断导致无后面的定时器无法进入中断服务程序. p) u7 _2 o9 [, _' C
/* board level initialization
2 k, a4 ?$ r+ d3 `" O3 z, r3 J6 {1 ?( X( S8 B8 |, X
NOTE: please initialize heap inside board initialization.
# I3 O/ b- x, f9 |8 ~ k/
: ]8 @0 |1 U1 m9 l. Wrt_hw_board_init();$ s8 k; }3 S/ v; y r. h1 x) {* y
/ show RT-Thread version */
, f! t4 Z. o9 p* Krt_show_version();9 L/ g+ v: _( V
...
/ o; e, M8 V7 ~3 k所以问题来了,如果我想在系统启动前调用延时函数怎么处理呢?改成不用中断的延时函数?还是说把模块的初始化放到系统启动以后去进行?3 x6 R9 j% a7 B9 C# u- F
|
|