background preloader

Blogs

Facebook Twitter

最新分享_分享_百度空间. Advanced Bash-Scripting Guide. 我们mark来mark去究竟m到了什么? | 暖乎乎. 豆瓣. 个人知识管理 | 逍遥游·萧秋水. 开源中国社区 - 找到您想要的开源软件,分享和交流. 苏州市嵌入式实验室. 在调试SD卡的时候,发现一插入SD卡便导致板子重启,经过检测,返现VDDIO会有一个browout,因为一插入SD卡,VDDIO负载变大,导致出现电压变化,但是为什么重启了呢? 在imx233的启动文件中,有电源初始化,在power_prep.c中,_start函数中经过跟踪发现PowerPrep_EnableOutputRailProtection此函数导致重启,进入分析源码,对照芯片手册,发现针对HW_POWER_CTRL寄存器,开启了三路电源vddio vdda vddd的browout的中断,但是在源码后续分析中也发现,对于VDDIO的browout的侦测有时候是存在虚假的,可以禁止掉此中断,在函数PowerPrep_EnableOutputRailProtection中, /* note that VDDIO brownout indicator has been found to falsely * trigger due to a 5V connection. Possibly also due to a pswitch * press. */ #ifndef DISABLE_VDDIO_BO_PROTECTION HW_POWER_VDDIOCTRL.B.PWDN_BRNOUT = 1; #endif 所以定义 #define DISABLE_VDDIO_BO_PROTECTION 即可,重启一切正常~~~~~~~~~~~ 上述阶段只是针对,未启动内核之前,在启动内核之后,还要对电源重新进行一次初始化。

通过对于源码的剖析,将主要流程在此叙述下, 针对采用IMX233config的内核来说,在drivers/power/mxs/linux.c中,有一个函数init_protection,此函数是为了完成一定的保护工作而作的电源硬件配置,在其中,有函数ddi_power_InitOutputBrownouts,便是完成的三路电源browout的中断配置,进入 void ddi_power_InitOutputBrownouts(void) { uint32_t temp; 可以看到temp &= ~BM_POWER_VDDIOCTRL_PWDN_BRNOUT; 九点. 简简单单 一个给你打分、并帮你认识新朋友的网站! Embedded&&IOT. 现在加入新浪微博,随时随地一起分享新鲜事!