完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
(1)core_cm3.c , core_cm.h:获取设置CM3内核,配置一些内核寄存器,用到CM3核的都需要; (2)stm32f10x.h 和 system_stm32f10x.c , system_stm32f10x.h 和 startup_stm32f10x_hd.s : stm32的支撑文件,这几个文件是和具体的芯片有关的; ①stm32f10x.h:标准外设库的入口,使用标准外设库的代码中必须包含该头文件; ②system_stm32f10x.c , system_stm32f10x.h:芯片初始化函数文件,提供库函数来初始化stm32芯片,配置PLL、系统时钟、Flash接口; ③startup_stm32f10x_hd.s : hd表明是大容量型芯片。 (4部分6文件) (3)misc.c , misc.h:NVIC、SysTick是驱动代码; (4)stm32f10x_it.c:中断服务程序文件; (5)stm32f10x_conf.h:外设配置文件; /*----------------------------------------ST源码-----------------------------------------------*/ uUCS (1)不区分特权级和用户级,程序始终工作在特权级(控制寄存器CONTROL)MSP和PSP两个堆栈指针的切换是全自动的,就在出入异常服务例程时由硬件处理。复位时MSP初值0x00000000,0x00000004 PC 初值复位向量 (2)PendSV中断做上下文切换,也就是任务切换,是ucosii移植过程中最重要的中断 主要有两点: 1.PendSV中断是手工往NVIC 的PendSV悬起寄存器中写1 产生的(由OS 写) 。 2.PendSV中断优先级必须设为最低。 (3)中断 中断/异常的响应序列 当CM3开始响应一个中断时 1.xPSR, PC, LR, R12以及R3‐R0入栈 2.取向量 3.选择堆栈指针MSP/PSP,更新堆栈指针SP,更新连接寄存器LR,更新程序计数器PC 对移植ucosii 来说,需要注意1,3 (4) ucosii 代码组成 os_task.c 任务管理代码。 os_flag.c 标志位管理 os_mbox.c 消息邮箱 os_mutex.c 消息队列 os_q.c os_sem.c 各个同步量管理代码。 os_mem.c 内存管理代码。 os_time.c 时间管理代码,主要做各种延时。 os_tmr.c 定时器管理代码 定时器管理代码,这部分代码时从 V2.81 版才开始有的,邵老师的书讲的是 V2.55 版的代码,是没有 这部分内容的。如果前面的代码都理解的话,这部分代码也是不难理解的。一个定时器大体由 3 部分组成: 定时时间,回调函数和属性。当定时时间到了的话,就进行一次回调函数的处理,定时器属性说明定时器 是周期性的定时还是只做一次定时。如果用户使能了 OS_TMR_EN,ucosii 会在内部创建一个定时器任务, 负责处理各个定时器。这个任务一般应该由硬件定时器的中断函数中调用 OSTmrSignal()去激活。所以从本 质上说 os_tmr.c 中的定时器是由一个硬件定时器分化出来的。 默认情况下是由 SysTick 中断里通过 OSTimeTickHook()去激活定时器任务的。 移植相关文件 os_cpu.h: 进行数据类型定义,处理器相关代码和几个函数原型。 os_cpu_c.c: 定义一些用户 hook函数。 os_cpu_a.asm: 移植需要用汇编代码完成的函数,主要就是任务切换函数。 os_dbg.c: 内核调试相关数据和函数,可以不改。 (5)任务切换 这里OS_CPU_PendSVHandler 要替换为 为 PendSV_Handler;如下 下图: OSTaskStkInit()的工作就是在任 务自己的栈中保存 cpu 的所有寄存器 PendSV 中断服务程序 ------ 任务切换 SysTick 中断服务程序 --------系统时钟 那么 任务切换 与 系统时钟的关系呢? |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1752 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1611 浏览 1 评论
1052 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
721 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1666 浏览 2 评论
1926浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
711浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
560浏览 3评论
583浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
544浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 15:41 , Processed in 0.773019 second(s), Total 78, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号