【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构(二)

简介: 【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构

【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构(一)https://developer.aliyun.com/article/1472621


创建工程

配置高速时钟和低速时钟为外部晶振提供

配置调试模式为sw调试模式

配置时钟频率

配置led,这里我的板子是这三个io接入的是led

配置一个10ms的定时器(1000000hz / 1000ms == 1ms = 1khz 就得到10ms需要计数10000重载)记得打开中断

配置工程并生成,工程名设置,单独生成.c.h文件拷贝库文件

下面开始代码的移植工作;

移植代码

首先我们需要将该开源项目的代码添加到工程中

在定时器中断服务函数中添加timeslice轮询函数

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  if(htim->Instance == TIM3)
  {
    timeslice_tick();
  }
}

然后我们需要在main函数中启动定时器并在while1中调用exec函数调度时间片

HAL_TIM_Base_Start_IT(&htim3);
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
    
    timeslice_exec();
  }

到这里我们的移植工作就做完了,该项目的解耦效果真的非常好,移植相当简单,然后我们创建几个任务实验一下效果;


【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构(三)https://developer.aliyun.com/article/1472623

相关文章
|
6天前
|
监控 安全 Cloud Native
云原生开源沙龙北京站开启报名 | 微服务安全零信任架构
「微服务安全零信任架构」主题技术沙龙将于4月13日在北京阿里中心举行,欢迎报名!~
云原生开源沙龙北京站开启报名 | 微服务安全零信任架构
|
1天前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】深入PolarDB内核:探究存储计算分离架构的设计哲学
【5月更文挑战第20天】PolarDB是阿里巴巴的云原生分布式数据库,以其存储计算分离架构为核心,解决了传统数据库的扩展性和资源灵活性问题。该架构将数据存储和计算处理分开,实现高性能(通过RDMA加速数据传输)、高可用性(多副本冗余保证数据可靠性)和灵活扩展(计算资源独立扩展)。通过动态添加计算节点以应对业务流量变化,PolarDB展示了其在云时代应对复杂业务场景的能力。随着开源项目的进展,PolarDB将持续推动数据库技术发展。
24 6
|
6天前
|
人工智能 自然语言处理 开发者
首个基于SSM-Transformer混合架构,开源商业大模型Jamba
【4月更文挑战第13天】AI模型部署与优化迎来新解决方案,ai21labs推出的SSM-Transformer混合架构大模型Jamba结合英伟达NVIDIA NIM服务。Jamba模型在自然语言处理上表现出色,开源特性促进AI技术普及,而NIM提供跨平台、高性能的部署支持。不过,技术门槛、资源需求及优化挑战仍需考虑。
37 6
首个基于SSM-Transformer混合架构,开源商业大模型Jamba
|
6天前
|
Cloud Native 安全 微服务
云原生开源沙龙北京站火热报名中丨微服务安全零信任架构
云原生开源沙龙北京站火热报名中丨微服务安全零信任架构。
|
6天前
|
程序员 Linux
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构(三)
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构
|
6天前
|
Linux
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构(一)
【嵌入式开源库】timeslice的使用,完全解耦的时间片轮询框架构
|
6天前
|
物联网 编译器 测试技术
【嵌入式 交叉编译器】如何在 ARM 架构下选择和使用高版本交叉编译器
【嵌入式 交叉编译器】如何在 ARM 架构下选择和使用高版本交叉编译器
325 7
|
21小时前
|
运维 监控 负载均衡
探索微服务架构下的服务网格
【5月更文挑战第20天】 在当今日益复杂的分布式系统中,微服务架构已成为企业技术栈的重要组成部分。随着微服务数量的膨胀和网络通信的复杂化,传统的服务发现与负载均衡机制显得力不从心。本文将深入探讨服务网格这一新兴模式,它如何在微服务环境中提供更灵活、动态且高效的服务间通信解决方案。我们将剖析服务网格的核心组件、工作原理以及它如何简化分布式系统的运维难题。
|
21小时前
|
消息中间件 持续交付 开发者
构建高效微服务架构:后端开发的新趋势
【5月更文挑战第20天】 随着现代软件开发的复杂性日益增加,传统的单体应用架构逐渐显得笨重且难以适应快速变化的市场需求。微服务架构作为解决方案,以其灵活性、可扩展性和技术多样性受到青睐。本文将深入探讨微服务架构的核心概念,设计原则,以及如何通过最佳实践来构建和维护一个高效的微服务体系结构。我们将讨论关键的后端技术栈选择,服务划分策略,数据管理,以及持续集成与部署(CI/CD)流程的重要性。文章旨在为后端开发者提供一套实用的指南和思考框架,以支持他们在未来的软件项目中采用微服务架构。
|
22小时前
|
持续交付 API 开发者
构建高效微服务架构:后端开发的新范式
【5月更文挑战第20天】 在现代软件开发的潮流中,微服务架构已成为推动技术创新和服务灵活部署的关键。本文探讨了如何构建一个高效的微服务架构,涵盖其设计理念、技术栈选择以及面临的挑战与应对策略。通过深入分析,我们旨在为后端开发者提供一套实用的指导原则和最佳实践,以支持快速迭代和系统的可扩展性。