前言:本教程使用SPC5Studio 5.8.1开发工具,创建一个附带FreeRTOS系统的初始工程。

1.创建工程

点击IDE左上角File -> New ->SPC5 C/C++ Application。
输入项目名称,选择保存的路径,点击Next。

输入应用名称、版本以及应用描述,点击Next。

选择自己的芯片信号,我使用的是"SPC560BCxx Platform Component RLA",点击Finish。

至此一个新的SPC project已创建在电脑上。

2.添加组件

鼠标左击"SPC560BCxx Platform Component RLA",Configuration里选择自己使用的芯片型号,RAM、ROM的大小,芯片引脚数都要对应自己使用的芯片。我选择的是" SPC560B50L1 e200z0h 512k 32kRAM LQFP64"。

鼠标左击"SPC560BCxx Platform Component RLA",点击"add",添加一些驱动组件。

选择"SPC560BCxx Init Package Component RLA",这个是必须添加的初始化包,点击"OK"。

完成以上操作之后,一些相关联的组件会被自动添加的项目里面。包括了Clock Component 时钟配置组件、IRQ Copmonent中断配置组件、OSAL Copmonent系统Tick配置组件。

再鼠标右击"SPC560BCxx Platform Component RLA",点击"add",添加“底层外设驱动组件”和“FreeRTOS系统组件”。按着“Ctrl”键,鼠标同时选择“SPC5 FreeRTOS Component RLA”和“SPC560BCxx Low Level Drivers Component RLA”,然后点击“OK”添加。

至此,组件添加完成,接下来根据自己的需求,通过组件对工程进行配置。

3.时钟组件配置

点击“SPC560BCxx Clock Component RLA”,打开配置界面,首先关注Initlization Settings这里的四个选择,根据需求进行设置。:

在这个界面的下方是时钟调频的配置,我们可以不在这里进行配置,而是使用Clock tree更为直观的进行配置。点击General,再点击SPC560BCxx Clock tree。

我使用了8MHz的外部晶振,然后通过PMPLL产生48MHz的时钟作为系统时钟System Clock, 双击蓝色框可以进入编辑,可参考下图进行配置:

其中FMFLL双击之后配置如下,FMPLL_clk = FXOSC / <IDF Value> * <NDIV Value> / <ODF Value>,即FMPLL_clk = 8MHz /1*48/8 = 48MHz:

4.OSAL组件配置

点击“SPC560BCxx OSAL Component RLA”打开OSAL配置界面:

使用抢占式系统,使能System Timer,System Timer Tick Number的值可以理解为,在1s的时间内System Timer IRQ中断触发的次数。

上面一段话的意思大概是,tick num的取值范围是受到系统频率(PIT0)限制的;如果存在操作系统,那么这里设置的tick num将覆盖操作系统属性配置的tick rate的值(下面会提到);如果tick num设定的值接近其最大值,则系统无法正常工作,因为在完成一个tick中断处理之前可能会生成新的tick中断。

关于System Timer IRQ Priority中断优先级的配置,操作系统的调度维护是在该中断里面去处理,假设一个外设A中断的优先级比该中断的优先级高,那么当外设A中断发生时,就不会进行任务的切换。

5.FreeRTOS配置

点击“SPC5 FreeRTOS Component RLA”打开“FreeRTOS”系统属性配置界面:

配置Total heap size为11k。按照默认配置为32k的话会导致编译错误。

6.配置一个Pin脚

打开PinMap editor界面,如图

鼠标右击选中一个PIN脚(PA1),将其设置为普通输出IO口模式,如图

点击确认之后会弹出以下界面,对PIN脚进行命名,如图

点击OK,那么PA1脚的初始化代码就会自动生成,在main主函数里的componentsInit函数被调用里进行初始化。

7.创建一个任务

修改main.c文件,添加一个任务,每10ms翻转PA1引脚。

void Cyclic10msTask( void *pvParameters)
{while(1){siul_lld_togglepad(PORT_A,1);vTaskDelay(pdMS_TO_TICKS(10));}
}
/** Application entry point.*/
int main(void) {/* Initialization of all the imported components in the order specified inthe application wizard. The function is generated automatically.*/componentsInit();xTaskCreate(Cyclic10msTask,"Cyclic10msTask",configMINIMAL_STACK_SIZE,NULL,1,NULL);vTaskStartScheduler();/* Application main loop.*/for ( ; ; ) {}
}

8.生成并编译代码

点击"Generate SPC5 Application",自动生成组件代码,再点击编译。

编译通过。

烧录到板子上,用逻辑分析仪读取PA1引脚的状态,结果与预期一致。

SPC5Studio 入门相关推荐

  1. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  2. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  3. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  4. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

  5. 【springboot】入门

    简介: springBoot是spring团队为了整合spring全家桶中的系列框架做研究出来的一个轻量级框架.随着spring4.0推出而推出,springBoot可以説是J2SEE的一站式解决方案 ...

  6. SpringBoot (一) :入门篇 Hello World

    什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  7. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

  8. 5 分钟入门 Google 最强NLP模型:BERT

    BERT (Bidirectional Encoder Representations from Transformers) 10月11日,Google AI Language 发布了论文 BERT: ...

  9. 命名实体识别入门教程(必看)

    关于开发自己的命名实体识别先期思路: 虽然网上有很多相关代码,但实际如何入门材料较少,故整理下: CRF:先期可以用人民日报语料库去做,步骤如下: https://blog.csdn.net/hude ...

最新文章

  1. 奇异值(Singular value decomposition SVD)分解
  2. pe修改rpc服务器不可用,ABBYY FineReader 12出现“RPC服务不可用”怎么办
  3. 计算机专业英语公开课教案,小学英语公开课教案,小学英语优质课教案?
  4. git 创建webpack项目_从0到1开发一个小程序cli脚手架(一)创建页面/组件模版篇...
  5. ASP.NET Web API 接口执行时间监控
  6. ruby on rails ajax select
  7. html链接增加参数,插入当前URL到@ Html.RouteLink参数来建立一个链接
  8. IOT(31)---物联网平台架构设计
  9. 【主机】计算机缓存机制
  10. VEGAS Pro 18序列号 PC上最佳的入门级视频编辑软件
  11. matlab数字信号处理程序,MATLAB数字信号处理 85个案例分析 全书程序
  12. BP神经网络算法简介
  13. Intel/Nvidia双显卡笔记本用U盘安装ubuntu和Nvidia驱动
  14. mac通过u盘启动linux系统,在mac下制作linux启动U盘
  15. CAGD——微分几何的曲线曲面表示
  16. 站内SEO第三篇:降低网站跳出率的7种有效方法
  17. 大数据(7f)比较Python和Scala面向对象
  18. 为什么输入法显示中文打不出中文_搜狗中文输入无法显示汉字怎么办_win10搜狗输入法打不出汉字的解决方法...
  19. 2018 软件学院 AK 杯 题解
  20. 基于单片机的电子时钟

热门文章

  1. Raspberry Pi 2 Model B Pi4J 示例
  2. 企业级监控工具Cacti安装配置全过程
  3. C# 实现ADSL自动断网和拨号(适用于拨号用户)
  4. js正则表达式test()和exec()用法
  5. js实现php中sleep()延时的功能
  6. VMware虚拟机很卡~
  7. standford lessons
  8. 【网址收藏】dubbo特新概念及特性、环境搭建、dubbo-monitor安装、rpc原理以及dubbo原理:框架设计、启动解析加载配置信息、服务暴露、服务引用及调用
  9. kubesphere添加新节点
  10. Spark on k8s提交测试任务失败报错解决办法:User “system:serviceaccount:default:default“ cannot get resource “pods