使用TC275的三个核心,轮流休眠待机,分别控制板卡上的LED灯,如core0检测按键按下,唤醒core1翻转LED1,一秒后,唤醒core2翻转LED2,系统休眠。
那我们今天就来看看如何用KIT_AURIX_TC275_LITE板卡的三个核心实现这个任务。
一起来看下方项目介绍。
硬件介绍
项目使用的开发板为英飞凌的 KIT_AURIX_TC275_LITE 开发板,其搭载的TC275芯片是一个三核的车规级芯片。
本项目使用了全彩LCD、按键与姿态传感器模块,并使用SPI扩展接口控制LED灯板。
功能展示
本项目实现的功能非常简单,就是点击按键,一个LED翻转,另一个LED等一秒钟之后翻转。
实现思路
首先配置环境
在英飞凌官方的例程中找寻相关的,学习其API
在B站搜索英飞凌多核视频学习
把上述相关程序缝到一块。实现过程
1. 环境配置
我开发的这几天官网的下载安装包功能不知道为什么不好使了,而且之前做智能车使用的1.3.0版本过于老旧,甚至不支持导入例程的功能,于是在这里分享一个群友分享的1.6.0版本的安装包:
2. 多核开发
多核开发的主要逻辑写在CPU0中,CPU1与CPU2只负责翻转对应的LED,且长期处在休眠模式。
CPU0使用一个定时器STM0定时200ms轮询检测按键是否被按下,如果被按下,就依次唤醒另外两个核,而后会让CPU0自己睡眠。每个定时器中断到来,CPU0都会被唤醒,所以中断处理函数中什么都不用写即可。
遇到的问题及解决办法
1. 编译不过问题
不知道为什么ADS编译不过去,此时右键左侧文件导航栏中的项目文件夹,点击Clean Project即可。
2. 延时函数问题
遇到了一个脑残问题,我把延时函数写到了定时器里面,且延时时间超了定时器时间,以至于一运行就卡死,之后注意别犯傻了。
3. 外设初始化位置问题
在写代码的过程中 GPIO初始化的位置很有讲究,其实在任意一个核初始化,别的核都是可以用的,但是问题是如果你唉CPU0核中初始化CPU1核用的外设,由于三个CPU是同时在跑的,如果CPU0还没有初始化结束,CPU1就已经跑到了使用GPIO的语句,就寄了,所以为了保险起见,最好哪个核用哪个外设,就把这个外设的初始化写在这个核的代码里。
审核编辑:刘清
-
lcd
+关注
关注
36文章
4578浏览量
175823 -
定时器
+关注
关注
23文章
3360浏览量
121743 -
Aurix
+关注
关注
1文章
75浏览量
11712 -
SPI串口
+关注
关注
0文章
4浏览量
1058
原文标题:基于英飞凌AURIX TC275 Lite的多核点灯-Funpack S2 #2项目分享(1)
文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
请问AURIX KIT_A2G_TC397_5V_TFT开发板如何通过UDE进行仿真调试?
KIT_A2G_TC375_LITE和KIT_A2G_TC375_ARD_SB在功能上有啥区别?
TDA5235_915_5_BOARD中的调试器比PSOC4_HVPA_LITE_KIT KIT_A2G_TC387_MOTORCTR中的仿真器更好吗?
AURIX TC375 LITE KIT\"用于同步采样的EVADC主从配置\" 示例未按预期运行是哪里的问题?
使用带有TC275 lite的infinion miniwiggler V3时出现错误的原因?
使用AURIX Development Studio在ShieldBuddy TC275上进行调试报错的原因?
在TC375 Lite Kit上调试时出现tsim问题怎么解决?
Aurix TC275TP在DXCPL模式下使用Trace32在闪存中写入数据,正确的命令顺序是什么?
AURIX Development StudioV1.72无法闪存TC275 Lite Kit怎么解决?
请问AURIX TC275 Lite Kit是否带有序列号?
AURIX TC275/TC234开发----(1) 开发准备工作 精选资料推荐
AURIX TC275/TC234开发----(1) 开发准备工作

如何用KIT_AURIX_TC275_LITE板卡实现多核点灯
评论