FreeRTOS学习笔记【1】—— Hello World实现

前言

  本系列记录本人从零开始,边复习边学习FreeRTOS新知识的过程,仅涉及PS端,无PL部分设计,部分理解仅供参考,欢迎各位大佬指正。学习过程基于Xilinx Soc ZYNQ 7000系列芯片。
  本系列学习采用Xilinx SDK 2018.3,所有代码模块基于C语言实现,代码修改及调试在windows10系统上进行。


一、 Xilinx SDK安装

  安装vivado2018.3时,可以勾选是否配备SDK,在此不作详细介绍,具体安装流程可以参考:Vivado 2018.3 安装步骤及 license 获取
此处给出vivado 2018.3网盘链接(印象中压缩包自带license,若没有请评论一下会补上):
链接: https://pan.baidu.com/s/1TDbxnRftV2U8cWufSXPVdA
提取码:c6dj


二、 Hello World工程创建

1. 打开SDK

  在win10搜索栏中搜索SDK,找到如图选项并打开。也可以通过快捷方式打开,设置方式略。
alt

2. 工作空间创建

  打开SDK后,点击Browse选择已构建的工作空间,若第一次打开SDK,可以在Browse的选择界面中进行新工作空间文件夹的创建。如下图所示,选择好工作空间后,点击OK打开。
alt

3. Hello World工程创建

  进入SDK后,若之前未在该工作空间内创建工程,会显示如下界面:
alt
  此时,有两种方式可以创建工程:
  ① 直接在该界面创建:点击"Create Application Project":
alt
  ② 若不慎关闭welcome界面,会显示如下界面:
alt
  此时,需点击"File"→“New"→"Application Project",如下:
alt
  两种打开方式都会进入下列界面:
alt
  首先明确我们此次Hello World工程的运行环境:FreeRTOS,且运行在ZYNQ 7000系列芯片的Cpu0上,因此我们先给工程名,即"Project name"栏取一个工程名(不能出现空格),选择操作系统平台"OS Platform"为"freertos10_xilinx",选择处理器"Processor"为"ps7_cortexa9_0"(此处末尾标识为0即为Cpu0,1即为Cpu1),如下图所示:
alt
  需要注意的是,此处应还有一项硬件平台"Hardware Platform"的选项,可以根据自身实际使用的板卡,选择Xilinx提供的硬件平台,或板卡自身提供的硬件平台,本记录中仅提供自身已有硬件平台时的硬件平台导入教程。
  硬件平台内容以文件夹形式存在,若为自身已有的硬件平台,则需先通过"File"→"import"→"General"→"Existing Projects into Workspace"导入硬件平台(导入时选择该硬件平台文件夹自身或其上级目录均可),才可以在创建工程时选择自己的硬件平台,流程图如下:
alt
alt
alt
  完成上述操作后,即可在工程创建界面的"Hardware Platform"中选择自身已有的硬件平台,我们在选择好工程创建相关信息后,点击"Next"
alt
  选择"FreeRTOS Hello World",点击"finish"
alt
  成功创建后,在"Project Explorer"界面应看到"Hello_World"及"Hello_World_bsp"两个文件夹,其中的文件名与工程创建时输入的名字相关。
alt
  至此,基于FreeRTOS的Hello World工程创建完毕。

4. 运行环境调整(BSP适配调整)

  此次创建的Hello World工程仅涉及硬件的串口输出,ZYNQ 7000系列在PS端拥有两个Uart设备,即Uart0与Uart1,具体哪个串口用作打印输出与硬件相关,一般默认为Uart0,但在本人采用的板卡中,采用Uart1进行串口打印输出,因此需要进行相关配置。
  找到"Project Explorer"文件夹下,刚刚创建的bsp文件夹,右键选择"Board Support Package Settings":
alt
  选择"Overview"→"freertos10_xilinx",观察其中的"stdin"、“stdout"选项,选项对应的串口即为打印输出所采用的串口,由于本人采用的板卡通过Uart1输出,我需要将这两项选为"ps7_uart_1”(理论上只修改"stdout"即可,为避免后续不必要的bug,我将两个设置都进行了更改),随后选择"OK"完成配置。
alt

5. 打开串口输出

  为了观察程序运行时的输出内容,需通过某款应用将串口输出进行界面化显示,可以选择的应用软件有Xilinx SDK、Putty、Xshell、串口调试助手等,此处仅介绍两款应用软件的串口打开方式:
  ① Xilinx SDK
  SDK自带串口输入/输出界面,在SDK中的名字为"SDK Terminal",若没有发现该窗口或错误关闭,可通过"Windows"→"Show View"→"Others",输入"Terminal"找到该选项并调出对应窗口。
alt
alt
  调出窗口后,点击窗口中的"+“号alt
  选择对应的串口设备,这里需要注意,如果确定连线正常,但界面中未出现任何可选择的串口设备,请确认电脑是否具备对应驱动,解决方式在此不作详细介绍。
alt
  点击"OK"后,在窗口处能观察到明显的已连接提示:
alt
  ② 串口调试助手
  此处介绍的是windows10应用商店中提供的串口调试助手,在Microsoft Store中搜索"串口调试助手”,下载安装并打开即可
alt
alt

6. Hello World运行

  在串口已连接并打开的情况下,可以开始运行并观察Hello World工程的输出,此处创建的Hello World工程基于FreeRTOS,有部分不需要的功能,为了方便大家更直观地理解代码,可以将"freertos_hello_world.c"中的代码替换如下:

/* FreeRTOS includes. */
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "timers.h"
/* Xilinx includes. */
#include "xil_printf.h"
#include "xparameters.h"

int main( void )
{
	xil_printf( "Hello from Freertos example main\r\n" );
}

  代码覆盖并保存后,将板卡通电,在SDK中右键Hello World工程,选择"Run As"→"Launch on Hardware (System Debugger)"
alt
  在串口调试助手中观察到如下输出,Hello World案例运行成功。
alt


总结

  本章仅对基于ZYNQ 7000系列,学习FreeRTOS的硬件调试环境进行初步确认,确保串口正常输出,后续更复杂程序的调试中,串口将起到关键作用。与传统C代码不同的是,嵌入式中的C代码实现需结合硬件执行,因此,本章可作为硬件串口连接的简易测试。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值