SPC5Studio 入门
前言:本教程使用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 /

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引脚的状态,结果与预期一致。

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

