在STM34F407固件库工程模板中加入ucOS_ii
发布日期:2021-06-30 22:01:50
浏览次数:2
分类:技术文章
本文共 1317 字,大约阅读时间需要 4 分钟。
前言
想测试一下在ucOS_ii中动态的启动任务,能启动多少个不卡, 启停控制是否都正常。
先从上次作的固件库模板上,加入ucOS_ii加好ucOS_ii的MDK工程
试验
在上次搭好的STM34F4的固件库模板的基础上,加上ucOS_ii本来想从ucOS官方407工程中迁移过来, 可是那是HAL库版本的.只能从正点原子版本上迁移, 但是我不迁移他们的库. 他们的库,我觉得F407内存管理库还不错.新建 /ucos_ii_src, /ucos_ii_cfg, /ucos_ii_port将原子ucOS_ii工程模板的ucOS_ii正常的实现拷贝进上述3个文件夹/ucos_ii_src文件列表:os_core.cos_flag.cos_mbox.cos_mem.cos_mutex.cos_q.cos_sem.cos_task.cos_time.cos_tmr.cucos_ii.h/ucos_ii_cfg文件列表:includes.hos_cfg.h/ucos_ii_port文件列表:os_cpu.hos_cpu_a.asmos_cpu_c.cos_dbg.c增加FPU编译选项STM32F40_41xxx, USE_STDPERIPH_DRIVER, USE_FULL_ASSERT, __TARGET_FPU_VFP, __FPU_PRESENT增加tick实现void SysTick_Handler(void){ // @note ls 一个tick = 1ms TimingDelay_Decrement(); if (OS_TRUE == OSRunning) { // 如果ucOS已经在跑了, 必须在tick回调中, 增加ucOS的tick, 否则ucOS的任务调度就停了 OSIntEnter(); OSTimeTick(); OSIntExit(); }}修改ucOS的tick设置(os_cfg.h)为1ms// 因为SysTick_Handler已经设置成1ms发生一次, SysTick_Handler又调用了OSTimeTick// 所以OS_TICKS_PER_SEC也必须代表为1ms发生一次#define OS_TICKS_PER_SEC 1000u /* Set the number of ticks in one second */勾选硬件FPU选项Options => Target => Floating Point Hardware => "Single Precision"加入星翼F407的库, 这个库我觉得好用#include "memory.h"ram_init();p = ram_malloc_in(x);ram_free_in(p);p = ram_malloc_ccm(x);ram_free_ccm(p);写ucOS任务测试* 延时函数用OSTimeDlyHMSM(), 和PC机的时钟对过,挺准的* 测试点灯* 测试浮点运算// 经测试, 加入ucOS_ii的效果,还正常// END
转载地址:https://lostspeed.blog.csdn.net/article/details/103231177 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月06日 05时08分49秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
platform_device和platform_driver
2019-04-30
Android触摸屏校准方法
2019-04-30
input_set_abs_params
2019-04-30
linux嵌入式系统开发之触摸屏---驱动篇(上/硬件原理\下/源码分析)
2019-04-30
对于中断函数返回值的分析
2019-04-30
x210——Android睡眠唤醒串口打印信息
2019-04-30
tianxiawuzhei_linux中触摸屏驱动的实现——基于s3c6410处理器
2019-04-30
四线触摸屏原理
2019-04-30
Hi-Z(高阻态)
2019-04-30
小议Linux staging tree
2019-04-30
内核配置中的:USB Gadget Support
2019-04-30
内核配置中的:Multifunction device drivers
2019-04-30
关于内核中 #ifdef CONFIG_**的问题
2019-04-30
Linux Kernel and Android 休眠与唤醒(中文版)
2019-04-30
Android中间件开发----Windows下Android环境搭建(最新最方便)
2019-04-30
C/C++如何返回一个数组/指针
2019-04-30
如何在 Ubuntu 16.04 上安装并使用 TensorFlow
2019-04-30
基于Android NDK的学习之旅-----JNI LOG打印
2019-04-30
语音命令词识别
2019-04-30