完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在没有ucos的时候,我们加入了startup_STM32f10x_hd.s文件,里面写着在main之前确实运行了SystemInit()。
但在加入ucos后,我没看到有启动文件,那是不是在main前没有SystemInit()呢?在哪里能看到是否执行了系统初始化? |
|
相关推荐
9个回答
|
|
不是ucos内核执行SystemInit,是你的ucos是基于STM32,STM32底层是用的库函数,库函数在启动文件配置了先执行SystemInit初始化系统。所以先执行
|
|
|
|
仿真调试看看,应该在main之前运行了SystemInit()。
|
|
|
|
直接就停到main开始了,main前面的怎么看?不会弄
|
|
|
|
怎么会没有呢,虽然不是必须汇编实现,但总应该有类似的功能代码。
|
|
|
|
去掉编译器里面的run to main选项。或者自己找到systeminit函数,在里面设个断点。
|
|
|
|
到不了SystemInit,去掉run to main,停在init.s里面:
;****************************************************************************** ; MOVE TO MAIN ;****************************************************************************** ldr r0, =__main bx r0 ; Save this in register for possible long jump ; ALIGN END 看不到main之前有执行SystemInit,如果没执行,是要和以前版本一样,自己写在main开头了?不过不写是能正常运行程序的,就是不知道哪里执行了。 |
|
|
|
我也觉得在main前应该已经先执行了系统初始化,就是看不到在哪。main里面是不用再写SystemInit了吧?
|
|
|
|
你这代码没有执行SystemInit函数。。。。
|
|
|
|
这是我的例程中的main函数,那是不是必须在main里面先执行SystemInit();?我屏蔽掉这个,程序没有什么不对。
也不知道屏蔽掉后,到底启动时哪里有没有运行过这个函数。也看不到调用了 startup_stm32f10x_hd.s int main(void) { CPU_INT08U err; /* SystemInit(); 配置内部Flash接口,初始化PLL,配置系统频率。系统时钟缺省配置为72MHz, 在 system_stm32f10x.c 文件中定义系统时钟 SYSCLK_FREQ_72MHz。 这个函数是ST库中的函数,函数实体在 system_stm32f10x.c 文件 (V3.4.0) startup_stm32f10x_hd.s 启动文件中已经调用了SystemInit()函数。 */ SystemInit(); /* 禁止所有的中断 */ BSP_IntDisAll(); /* 初始化"uC/OS-II"内核 */ OSInit(); /* 创建一个启动任务(也就是主任务)。启动任务会创建所有的应用程序任务 */ OSTaskCreateExt(AppTaskStart,/* 启动任务函数指针 */ (void *)0,/* 传递给任务的参数 */ (OS_STK *)&AppTaskStartStk[APP_TASK_START_STK_SIZE - 1], /* 指向任务栈栈顶的指针 */ APP_TASK_START_PRIO,/* 任务的优先级,必须唯一,数字越低优先级越高 */ APP_TASK_START_PRIO,/* 任务ID,一般和任务优先级相同 */ (OS_STK *)&AppTaskStartStk[0],/* 指向任务栈栈底的指针。OS_STK_GROWTH 决定堆栈增长方向 */ APP_TASK_START_STK_SIZE, /* 任务栈大小 */ (void *)0,/* 一块用户内存区的指针,用于任务控制块TCB的扩展功能(如任务切换时保存CPU浮点寄存器的数据)。一般不用,填0即可 */ OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR); /* 任务选项字 */ /* 定义如下: OS_TASK_OPT_STK_CHK 使能检测任务栈,统计任务栈已用的和未用的 OS_TASK_OPT_STK_CLR 在创建任务时,清零任务栈 OS_TASK_OPT_SAVE_FP 如果CPU有浮点寄存器,则在任务切换时保存浮点寄存器的内容 */ /* 指定任务的名称,用于调试。这个函数是可选的 */ OSTaskNameSet(APP_TASK_START_PRIO, (INT8U *)APP_TASK_START_NAME, &err); /* 启动多任务系统,控制权交给uC/OS-II */ OSStart(); } |
|
|
|
只有小组成员才能发言,加入小组>>
636 浏览 0 评论
1076 浏览 1 评论
2446 浏览 5 评论
2773 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2604 浏览 6 评论
使用eim外接fpga可是端口一点反应都没有有没有大哥指点一下啊
628浏览 9评论
624浏览 7评论
请教大神怎样去解决iMX6Q在linux3.0.35内核上做AP失败的问题呢
751浏览 6评论
600浏览 5评论
647浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-2 20:11 , Processed in 1.158705 second(s), Total 97, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号