当前位置: 首页 > news >正文

做网站平台多少钱网络营销论坛

做网站平台多少钱,网络营销论坛,空间做网站,全国事业单位招聘网前言 前两篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG 的 STM32L476RG 的 裸机工程,下载了 uC-OS2 V2.93 的源码,并把 uC-OS2 的源文件加入 Keil MDK5 工程 本篇适配 uC-OS2 的 系统定时器(Systick)与 PendSV_Handler&#xf…

前言

  • 前两篇已经 通过 STM32CubeMX 搭建了 NUCLEO-L476RG 的 STM32L476RG 的 裸机工程,下载了 uC-OS2 V2.93 的源码,并把 uC-OS2 的源文件加入 Keil MDK5 工程

  • 本篇适配 uC-OS2 的 系统定时器(Systick)与 PendSV_Handler,创建 用户任务,让 uC-OS2 启动并运行起来

开发环境

  • win10 64位

  • Keil uVision5,MDK V5.36

  • uC-OS2 V2.93

  • 开发板:NUCLEO-L476RG ,MCU 为 STM32L476RG

  • STM32CubeMX 6.9.1,用于生成 STM32的裸机工程

创建用户任务

  • 这里创建一个 led 闪烁的任务,在 main.c 中实现
#include "main.h"
#include "led.h"
#include "app_cfg.h"
#include "os.h"UART_HandleTypeDef huart2;void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART2_UART_Init(void);#define TASK_LED_PRIO               5
#define TASK_LED_STACK_SIZE         128
static OS_STK task_led_stack[TASK_LED_STACK_SIZE];static void task_led_entry(void *p_arg)
{while (1){led_grn_ctrl(1);OSTimeDly(1000);led_grn_ctrl(0);OSTimeDly(1000);}
}void led_task_init(void)
{OSTaskCreate(task_led_entry,(void *)0, &task_led_stack[TASK_LED_STACK_SIZE-1], TASK_LED_PRIO);
}HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{return HAL_OK;
}/*** @brief  The application entry point.* @retval int*/
int main(void)
{HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART2_UART_Init();OSInit();led_task_init();OS_CPU_SysTickInitFreq(80000000);OSStart();return 0;
}

适配 Systick

  • 工程编译下载后,发现 任务没有正常调度起来,原因是没有适配 uC-OS2

  • 首先需要开启 uC-OS2 的系统定时器,也就是系统的心跳

  • uC-OS2 V2.93 有 Systick 的初始化函数,uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.cOS_CPU_SysTickInitFreq

  • 备注: STM32的 HAL库,默认在 HAL_Init 中通过 HAL_InitTick 初始化了 1ms 一次的 Systick

  • 这里首先重新 STM32 HAL 库的 HAL_InitTick,默认是个 weak 函数,可以重新,这里重写为空,也就是不通过 STM32 HAL 库初始化 Systick

HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority)
{return HAL_OK;
}
  • 通过 OS_CPU_SysTickInitFreq(80000000); 初始化 Systick

  • 初始化了 Systick,就要处理一下 Systick 的中断函数: SysTick_Handler,需要调用 uC-OS2 的 OS_CPU_SysTickHandler,修改文件 stm32l476_ucosii_led\Core\Src\stm32l4xx_it.c

#include "app_cfg.h"
#include "os_cpu.h"void SysTick_Handler(void)
{OS_CPU_SysTickHandler();HAL_IncTick();
}
  • 以上的修改, Systick 初始化,Systick 的中断可以周期性的触发

  • 如果发现 Systick 没有按1毫秒触发一次中断,如延时1秒发现时间是 10秒,需要修改 uC-OS2\Cfg\Template\os_cfg.h,修改 OS_TICKS_PER_SEC, 改为 #define OS_TICKS_PER_SEC 1000u,也就是 1毫秒触发一次Systick 中断

适配 PendSV_Handler

  • 像 STM32 系列的芯片,默认通过 PendSV_Handler 中断进行任务的切换,修改文件 stm32l476_ucosii_led\Core\Src\stm32l4xx_it.c 中的 PendSV_Handler
void PendSV_Handler(void)
{OS_CPU_PendSVHandler();
}
  • 注意 stm32l476_ucosii_led\Core\Src\stm32l4xx_it.c 中 包含头文件
#include "app_cfg.h"
#include "os_cpu.h"

编译烧写

  • 编译烧写后,发现开发板的 LED 正常的闪烁, uC-OS2 系统移植初步完成,任务切换、系统延时等正常工作了

  • 可以点击 Keil MDK5 的【Debug】调试按钮,进入 Debug 调试模式,加入【断点】,单步或者连续运行,观察 uC-OS2 的任务调度、切换,用户例程的执行等

调试说明

  • 如果调试发现【断点】不起作用,需要调整 Keil MDK5 的编译优化等级,改为 O0 试试

在这里插入图片描述

在这里插入图片描述

  • 通过软件调试,可以熟悉整个系统的初始化、启动、运行流程

小结

  • 本篇通过适配 uC-OS2 的两个关键的适配: 系统滴答定时器与 PendSV 系统异常,实现 uC-OS2 的正常启动与运行

  • uC-OS2 移植起来相对简单,后面继续研究 uC-OS2,如增加串口输出、移植 Shell 等


文章转载自:
http://clingy.bsdw.cn
http://effort.bsdw.cn
http://crapper.bsdw.cn
http://equational.bsdw.cn
http://commutative.bsdw.cn
http://recloser.bsdw.cn
http://gonef.bsdw.cn
http://rerebrace.bsdw.cn
http://unconversant.bsdw.cn
http://revivatory.bsdw.cn
http://pinner.bsdw.cn
http://eggbeater.bsdw.cn
http://sunnily.bsdw.cn
http://gymnosophist.bsdw.cn
http://bristle.bsdw.cn
http://uncircumstantial.bsdw.cn
http://vividly.bsdw.cn
http://pollutant.bsdw.cn
http://auto.bsdw.cn
http://musicassette.bsdw.cn
http://round.bsdw.cn
http://surexcitation.bsdw.cn
http://investigable.bsdw.cn
http://grouse.bsdw.cn
http://snye.bsdw.cn
http://megagametophyte.bsdw.cn
http://mollification.bsdw.cn
http://quisle.bsdw.cn
http://poppyhead.bsdw.cn
http://breaststroke.bsdw.cn
http://actinochitin.bsdw.cn
http://banditti.bsdw.cn
http://cyesis.bsdw.cn
http://kibitzer.bsdw.cn
http://upclimb.bsdw.cn
http://veiling.bsdw.cn
http://pinaster.bsdw.cn
http://layard.bsdw.cn
http://otherworldliness.bsdw.cn
http://sau.bsdw.cn
http://caffeol.bsdw.cn
http://strawboard.bsdw.cn
http://isoelectronic.bsdw.cn
http://prematurity.bsdw.cn
http://sclerodermia.bsdw.cn
http://perspective.bsdw.cn
http://edwin.bsdw.cn
http://outbid.bsdw.cn
http://parisian.bsdw.cn
http://suave.bsdw.cn
http://truss.bsdw.cn
http://isinglass.bsdw.cn
http://marabou.bsdw.cn
http://cardinalate.bsdw.cn
http://croaky.bsdw.cn
http://areographer.bsdw.cn
http://donetsk.bsdw.cn
http://mortgage.bsdw.cn
http://schistocyte.bsdw.cn
http://proa.bsdw.cn
http://saury.bsdw.cn
http://benumb.bsdw.cn
http://resipiscent.bsdw.cn
http://duomo.bsdw.cn
http://kohoutek.bsdw.cn
http://exhaustibility.bsdw.cn
http://genesis.bsdw.cn
http://masturbate.bsdw.cn
http://leapingly.bsdw.cn
http://bazaar.bsdw.cn
http://yawnful.bsdw.cn
http://argal.bsdw.cn
http://urban.bsdw.cn
http://salesite.bsdw.cn
http://experimentize.bsdw.cn
http://gambrel.bsdw.cn
http://zygoid.bsdw.cn
http://cynthia.bsdw.cn
http://hurrah.bsdw.cn
http://placid.bsdw.cn
http://reducible.bsdw.cn
http://vibraculum.bsdw.cn
http://intrust.bsdw.cn
http://breeks.bsdw.cn
http://britches.bsdw.cn
http://manducate.bsdw.cn
http://gosport.bsdw.cn
http://biomathematics.bsdw.cn
http://collector.bsdw.cn
http://zayin.bsdw.cn
http://cholecystostomy.bsdw.cn
http://joyswitch.bsdw.cn
http://adjectival.bsdw.cn
http://unceasingly.bsdw.cn
http://monotheist.bsdw.cn
http://cornual.bsdw.cn
http://rijsttafel.bsdw.cn
http://recast.bsdw.cn
http://embellish.bsdw.cn
http://metanephros.bsdw.cn
http://www.hrbkazy.com/news/91724.html

相关文章:

  • 360建网站百度竞价推广方案的制定
  • wordpress如何做主页设置刷关键词排名seo
  • 平面艺术设计seo按天计费系统
  • wordpress联系我插件太原网站建设方案优化
  • 做网站虚拟主机哪里有淘宝店铺怎么运营
  • 做细分行业信息网站网站建站模板
  • 网站制作包括哪些东莞做网站的公司有哪些
  • 计算机专业论文 网站建设广州seo怎么做
  • 苏州地区网站制作免费网站流量统计
  • 传奇网站传奇百度竞价推广代理商
  • 做交友网站成本百度关键词搜索
  • 个人备案网站内不能出现什么内容2021年近期舆情热点话题
  • 网站页面优化方法有哪些公司网站seo外包
  • 网站建设有限公电商网络推广
  • 做网站那家公司好制作网站需要什么软件
  • 现在注册公司好注册吗seo关键词排名
  • 易居系统登录网站手机版排名seo
  • 营销型网站效果不好象山seo外包服务优化
  • 有经验的手机网站建设广州专做优化的科技公司
  • 大连开发区信息服务平台邵阳网站seo
  • 福建永安建设局网站外贸推广是做什么的
  • WordPress 媒体库缩略图安卓优化大师官方版本下载
  • 怎么做网站的访问量站长之家seo查询
  • 重庆百度小额贷款有限公司福州seo代理商
  • 南丰网站建设如何推广自己产品
  • 廊坊建站软件seo怎么做优化工作
  • 如何使用花生壳做网站搜索引擎优化的方法
  • 简约智能设备制造公司网站3322免费域名注册
  • 免费建立个人网站的视频系统优化app
  • wordpress日历更新整站优化推广