【FreeRTOS】系统移植:资料下载(一)

简介: 【FreeRTOS】系统移植:资料下载

简介

在裸机系统中,所有的程序基本都是自己写的,所有的操作都是在一个无限的大循环里面实现。现在还有一些项目开发用的都是裸机系统,而且也能够满足需求。 为什么还要学习 RTOS 编程,偏偏还要整个操作系统进来。一是项目需要,随着项目要实现的功能越来越多,单纯的裸机系统已经不能够完美地解决问题,反而会使编程变得更加复杂,如果想降低编程的难度,我们可以考虑引入RTOS 实现多任务管理,这是使用 RTOS 的最大优势。二是学习的需要,进入实时操作系统的学习对于我们后面学习Linux系统开发会有不少的帮助;

资源下载

Github下载:https://github.com/freertos

托管下载:https://sourceforge.net/projects/freertos/files/FreeRTOS/

官网下载:https://www.freertos.org/

在这里我采用FreeRTOSv9.0.0.zip这个包进行后续的开发,这也是使用人数较多的一个版本相对比较稳定,建议大家在学习的过程使用和我一样的版本,如果你的开发板和我的不同也没有关系,我们下面的工程创建将采用STM32CubeMX进行创建,理论上我们的应用代码是都可以使用的只是在创建工程时选择的芯片不同,后续的外设可能引脚会有所改变,但这不影响学习;

工程创建

选择自己对应的芯片

配置时钟,我这里使用的是正点原子的探索者所以高速和低速都选择外部晶振时钟,根据自己板子原理图搭配即可

配置调试模式和配置基准时钟(原来的systick用来作为FreeRTOS的任务切换了,我们的HAL_Delay就没有基准时钟了)

配置串口1

配置时钟

配置两个LED灯

配置工程

然后生成工程并测试工程

/**
  * @brief  The application entry point.
  * @retval int
  */
int main(void)
{
  /* USER CODE BEGIN 1 */
  /* USER CODE END 1 */
  /* MCU Configuration--------------------------------------------------------*/
  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();
  /* USER CODE BEGIN Init */
  /* USER CODE END Init */
  /* Configure the system clock */
  SystemClock_Config();
  /* USER CODE BEGIN SysInit */
  /* USER CODE END SysInit */
  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
  /* USER CODE END 2 */
  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */
    /* USER CODE BEGIN 3 */
      HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin);
      HAL_Delay(200);
      HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
      HAL_Delay(200);
  }
  /* USER CODE END 3 */
}


【FreeRTOS】系统移植:资料下载(二)https://developer.aliyun.com/article/1472585


相关文章
|
数据可视化 中间件 API
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
熟悉 在 STM32 CubeMX 下面的 FreeRTOS 使用
6606 1
FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)
|
传感器 前端开发 物联网
【免费开源】STM32+ESP8266 打造低成本智能家居物联网系统(附源码与硬件设计)
本项目基于STM32与ESP8266打造低成本智能家居系统,支持温度监测、远程控制与数据上传,附完整源码与硬件设计,适合物联网初学者与电子爱好者学习与扩展。
Python实现PowerPoint演示文稿到图片的批量转换
PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具,被广泛应用于教育、商务汇报及个人项目展示等领域。然而,面对不同的分享场景与接收者需求,有时需要我们将PPT内容以图片形式保存与传播。 这样能够避免软件兼容性的限制,确保信息接收者无需安装特定软件即可查看内容,还便于在网络社交平台、博客、电子邮件中快速分享与嵌入。而用Python代码可以高效地实现PowerPoint演示文稿到图片的批量转换,从而提升工作效率。
|
传感器 监控 安全
STM32直流充电桩主控方案【源程序+原理图+PCB】
STM32直流充电桩主控方案【源程序+原理图+PCB】
900 0
|
安全 Linux C语言
【FreeRTOS】系统移植:资料下载(二)
【FreeRTOS】系统移植:资料下载
1291 1
|
开发框架 前端开发 JavaScript
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
循序渐进介绍基于CommunityToolkit.Mvvm 和HandyControl的WPF应用端开发(5) -- 树列表TreeView的使用
|
Go 内存技术
【Jlink】JLink Commander调试方法
上面的信息连可以看到当前运行的PC指针,再可以结合生成的map文件,就可以看到当前运行的函数。例如上面运行的PC指针为0x01000E72,下图是固件的map文件,查看map文件对应地址的函数为SEGGER_RTT_Write。用来读取内存的数据,参数为内存的地址和读取的长度。也可以直接用mem命令按照8位来读取。常用的命令有halt,go,mem(mem8,mem16, mem32), write(write1, write2, write4 )用来写入对应的内存地址,参数为内存的地址和写入的数据。
4670 45
【Jlink】JLink Commander调试方法
|
存储 Unix Linux
深入理解 Linux 内核1
深入理解 Linux 内核
463 0
|
SQL JSON 监控
实时计算 Flink版产品使用合集之直接将 JSON 字符串解析为数组的内置函数如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
JavaScript 前端开发 安全
从自定义元素到 Shadow DOM
该文介绍了自定义元素和 Shadow DOM 的概念和用法。自定义元素是一种允许开发者创建自己的 HTML 标签的技术,它使得代码更加语义化和结构化。博文详细解释了如何定义自定义元素,并且展示了如何添加自定义属性和方法。此外,博文还介绍了 Shadow DOM 的概念和作用。Shadow DOM 用于封装和隔离组件的样式和 DOM 结构,以避免样式冲突和污染。博文通过示例代码演示了如何创建和使用 Shadow DOM,并且强调了它在构建独立组件和模块化代码方面的重要性。这篇博文将帮助读者了解和掌握自定义元素和 Shadow DOM 的技术,提升他们在 Web 开发中的能力和效率。
532 1