# stm32自初始化 **Repository Path**: whxwhxwhx/stm32-self-initialization ## Basic Information - **Project Name**: stm32自初始化 - **Description**: 类似于Linux驱动编写的时候的module_init,很有意思 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2021-12-18 - **Last Updated**: 2023-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README /** * map文件ModuleInitStart区域: _UserInit_ModuleInitStart 0x08008860 Data 4 module.o(.init_func.0) _UserInit_module_delay_init 0x08008864 Data 4 delay.o(.init_func.00) _UserInit_module_uart_init 0x08008868 Data 4 usart.o(.init_func.01) _UserInit_module_LcdInit 0x0800886c Data 4 lcd.o(.init_func.11) _UserInit_module_LED_Init 0x08008870 Data 4 led.o(.init_func.22) _UserInit_ModuleInitEnd 0x08008874 Data 4 module.o(.init_func.99) */ /** * 在map文件中可以找到 * _UserInit_ModuleInitStart * _UserInit_ + your function name * ... * ... * _UserInit_ModuleInitEnd * * 源文件的函数无需在主函数调用 * 只需要Module_Init(__userFunction, InitLevel, InitSubLevel)即可 * example: * static int test(void) { ...... return 0; } Module_Init(test, priority, sub-priority); * 函数会加载到_UserInit_ModuleInitStart段中去 */ /** * 支持的优先级 * 可自己增加定义,但需要注意Module_End需要最低优先级 * 数字小则优先级高 * InitLevel相同则判断InitSubLevel * 若均相同则看编译链接的先后顺序 */ #define TestEnable 0 //两个测试函数 #define PrintError 1 //初始化失败是否打印地址,但是usart1初始化成功之前无法打印