
在cube的基础上移植uocsii成功,今天因为外设的问题用cube重做了次工程。然后问题来了,程序建立任务后,在调度任务时死掉了。卡在os_cpu_a.asm中 B OSStartHang这句话。查找资料后,问题是startup_stm32f103xe.s启动文件中的中断向量问题。需要把原来STM32的中断向量替换成ucosii的中断向量,这样ucos才能开始他的任务调度。这个中断向量我是改过的,但是在cube中重新编辑过后, startup_stm32f103xe.s文件被打回原形了,之前所有的改动都消失了。在这里也是提醒使用cube的童鞋,类似cube会修改的文件,当我们需要修改文件时,做好是备份一个文件到另外的目录下,在工程中加载我们修改的文件,这样用cube修改我们的工程时就不用每次再去修改文件了。 比如,startup_stm32f103xe.s本来是在\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\arm目录下,现在在Drivers目录下复制一个startup_stm32f103xe.s文件,并且修改后,替换原来工程中的startup_stm32f103xe.s。这样就能避免cube对我们工程中不希望产生的修改了。 |
楼主的经验总结啊。 |
谢谢分享。。。
![]() ![]() ![]() ![]() ![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
这种经验之谈还是很有价值的,,估计很多人都遇到过 |
移植这东西确实需要详细的步骤分解,否则错一步都很让人头疼![]() ![]() ![]() |
多谢分享!!!!![]() ![]() |
楼主能否分享下 hal库+ucos工程文件? 最近在移植 一直出现问题![]() |
在哪查的资料? 中断向量具体要怎么修改? 最近也在移植ucos到STM32CUBEMX生成的工程中 |