求GPIO最快初始化的方式

发布于 2019-11-16 18:48:28
    本帖最后由 6552918 于 2019-11-16 18:54 编辑


如何能在MCU启动后最快速的对IO进行初始化,并对输出配置高低状态,现在在main当中进行初始化还是不够快,MCU启动后还是有一段时间的状态是不想要的状态,请有方法的指导一下,谢谢!

查看更多

关注者
0
被浏览
408
7 个回答
whj467467222
whj467467222 2019-11-16
在RTT中 有自动初始化,在compnents.c中,有如下定义
/*
* Components Initialization will initialize some driver and components as following
* order:
* rti_start --> 0
* BOARD_EXPORT --> 1
* rti_board_end --> 1.end
*
* DEVICE_EXPORT --> 2
* COMPONENT_EXPORT --> 3
* FS_EXPORT --> 4
* ENV_EXPORT --> 5
* APP_EXPORT --> 6
*
* rti_end --> 6.end
*
* These automatically initialization, the driver or component initial function must
* be defined with:
* INIT_BOARD_EXPORT(fn);
* INIT_DEVICE_EXPORT(fn);
* ...
* INIT_APP_EXPORT(fn);
* etc.
*/
对用了自动初始化的等级,这些初始化是按照优先级初始化的,
CPU什么时候执行初始化,以STM32为例,在drv_common.c中的 rt_components_board_init(); 来完成的。
这一步完成了,才会进入调度器开启main 任务。


aozima
aozima 2019-11-16
startup.S 里面应该是最快的方式。
6552918
6552918 2019-11-16
whj467467222 发表于 2019-11-16 18:53
在RTT中 有自动初始化,在compnents.c中,有如下定义对用了自动初始化的等级,这些初始化是按照优先级初始 ...


[attach]12300[/attach]是在这个位置先进行IO配置是吗?
6552918
6552918 2019-11-16
6552918 发表于 2019-11-16 19:10
是在这个位置先进行IO配置是吗?


360截图18720124123949.jpg在这里进行初始化即实现我的需求。谢谢
whj467467222
whj467467222 2019-11-16
aozima 发表于 2019-11-16 19:08
startup.S 里面应该是最快的方式。


您这个是最快的,sub$main 对GPIO进行初始化是最快的。
aozima
aozima 2019-11-17
补充下,如果还是觉得不够快,上电时有误动作,可以通过上拉或下拉电阻来稳定状态。
来一颗糖
来一颗糖 2019-11-18
stm32 多数引脚上电默认普通GPIO复用,不需要初始化,可以直接操控IO高低电平。

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友