全部学习汇总: GreyZhang/g_TC275: happy hacking for TC275! (github.com)

这段时间终于开始了TC275开发板的简单软件调试,运行了一个简单的官方例程之后,尝试开启了解这个MCU的一些配置以及设置。在理顺这些代码的时候,看到了一个CPU ID获取的接口,结合这部分信息,我一起看了一下用户手册的相关内容。接下来,结合手册以及代码做一些整理以及测试。

这里给出了寄存器的一个复位默认值以及每一部分位域表示的意义,针对这个描述多少有点好奇:难道这个数值还是可以修改的?

TC275中的内核是有两大类的,其中一个是P核,关注于性能,另一个是E核,有更好的能耗参数。从这部分文档看,这两个内核相关的ID信息都是32bit的。但是,这两个内核的版本都不同的,由此倒是可以看出开发的时候芯片的开发组兴许是两部分分开开发的。

这个是内核ID的获取寄存器,从描述看这个信息可能是可以变动的,通过下面的这组用户可配置的ID寄存器。

这样,相关的文档内容基本就看完了,主要是几个寄存器的介绍。简单小结一下的话,其实是寄存器主要是分为两类,其中的一类是用来判断内核是哪一种,另一类则是用来判断内核的编号是什么。

我在每一个内核的main函数中都增加了一段这样的代码,然后,在Core0的main函数中把相应的信息打印出来。

以上是打印的信息。

上面是软件编译之后运行的输出效果,每一个Core中的代码都成功获取到了相应的内核的信息。同时,也第一次看到其实这个全局变量是可以在各个Core里面直接使用的,至少是可以直接读取。接下来,我想再增加一个测试,那就是让这个信息不断更新。看看是不是能够看到获取内核ID的效果。同时,也验证一下这个变量是不是可以在不同的内核里面直接进行修改。

首先,我把内核ID的获取全都放到了每一个内核主函数的这个位置。其实,这样也可以变相看得出来这几个内核是否真正运行到了这个循环。

Core0的主函数中的代码改成了这样子。之后,编译测试一下。如果所有的Core全都运行了,而且ID获取都成功。那么,虽然不见得每一次的打印都能够成功打印出来ID的号码,但是至少大部分应该是正确的。

这几轮打印的结果其实就很能够说明问题了。在Core0的代码中,打印之后,其实是对这个ID全都进行了修改的。那么,再次打印的时候,之说以正确其实是不同的Core里面对此进行了更新。为了能够更好的说明问题,其实,可以一次同时把涂抹数据一起打印出来。

测试的代码按照上面的形式进行修改,之后测试看看效果。

结果多少有点让我觉得意外,其实也是可以理解的。为什么呢?因为另外两个Core的运行速度还是很快的。接下来,我在里面增加一个缓冲备份让这个结果能够看得更清楚一些。

这样,主体的测试代码改成了这样子。

以上是这次软件编译烧录后的运行效果,可以看得出来,几个变量其实是修改成功了的。为什么之前会有打印失败呢?其实,这个串口的速度并不是很快,因此,面临更快的CPU的内核轮询,来不及反应的时候内容进一步被修改了。

关于CPU ID的信息,在我现在用的这个例子中没有。因此,我尝试自己去实现一下看看效果。

照葫芦画瓢,实现了一下CPU ID的获取接口。之后,在每一个Core的main函数中都调用赋值给一个全局变量。

在Core0的main函数中,增加了上面的测试代码,并且根据前面的手册判断了一下CPU的类型。

这是程序编译烧录之后运行的效果,看起来这个测试还是可以的,正确获取到了相应的信息。至于文档中提到了另一个客户定制的部分,我觉得我最终用到的可能性不大,当做趣味材料看看就这么过了吧!

1471_TC275的内核种类以及ID判断相关推荐

  1. 联想服务器网卡型号怎么看,如何通过设备硬件ID判断无线网卡的品牌及型号

    故障现象: 如何通过设备硬件ID判断无线网卡的品牌及型号?解决方案: 硬件ID查询方法: 1.打开设备管理器,在设备管理器中找到网络适配器选项,在无线网卡设备上点击鼠标右键选择属性,参考如图: 注意: ...

  2. dede:channelartlist 判断 ,根据id判断二级栏目是否需要加跳转链接

    根据id判断 {dede:channelartlist type ='top' typeid='1,2,3,4,5,6,7' currentstyle='active' }<li class=& ...

  3. PHP判断浏览器内核过低,js判断浏览器版本以及浏览器内核的方法

    本文实例讲述了js判断浏览器版本以及浏览器内核的方法.分享给大家供大家参考.具体实现方法如下: js判断是否移动端及浏览器内核 var browser = { versions: function() ...

  4. 浏览器的内核及版本的判断

    通过jquery 判断浏览器的内核及版本号<script type="text/javascript">$(function () {if ($.browser.msi ...

  5. 浏览器的内核种类及检测

    1.Trident内核:IE最先开发或使用的,也称IE内核,360浏览器使用的也是IE内核:2.Webkit内核:谷歌chrome浏览器最先开发或使用,也叫谷歌内核,枫树浏览器.太阳花使用的也是谷歌内 ...

  6. AnjularJS笔记5--ng-repeat跟据ID判断重复性

    2019独角兽企业重金招聘Python工程师标准>>> ng-repeat 总是为数组中每一条数据或对象中的每一个属性创建新的DOM元素.  为了优化性能,当记录重复时--它也能缓存 ...

  7. iPhone X Face ID判断

    使用Face ID识别方式需要在info.plist文件里增加key <key>NSFaceIDUsageDescription</key> <string>允许设 ...

  8. js获取id后添加html代码,js获取Id的方法getElementById与$的由来和用Id判断元素是否存在及批量动态获取 Id...

    要用js操作一个html元素必须获取到这个元素,而获取元素要用 getElementById() 方法,这个方法是通过元素的Id获取到元素这个对象.getElementById 字符比较多,写得比较长 ...

  9. 联想服务器网卡型号怎么看,如何通过设备硬件ID判断网卡的品牌及型号

    操作步骤: 1.使用Windows 10系统的用户,请在桌面上找到"此电脑"图标,然后右键单击,选择管理: 使用Windows 8.1系统的用户,请在桌面上找到"这台电脑 ...

最新文章

  1. oracle web API,在Web API程序中使用Swagger做接口文档
  2. 边缘计算4.0正急速驶来,你做好准备了吗?
  3. pythontcp服务器如何关闭阻塞_python实现单线程多任务非阻塞TCP服务端
  4. LeetCode 螺旋矩阵(Spiral Matrix)
  5. CSS3特效之转化(transform)和过渡(transition)
  6. oracle thin和oci 区别
  7. java中对象清空值_对象的引用和清除_Java语言程
  8. galaxy+note8+android+8.0,三星已经开始了S8/S8+以及Note8的Android9.0更新的开发工作!
  9. C++调用 Json解析与处理库
  10. 轻松学习java可重入锁(ReentrantLock)的实现原理
  11. win10修改服务器IP,Win10系统更改本地连接ip地址的方法
  12. 记一个老年机的逆向工程与主线linux移植 (一)—— 信息收集与Bootloader移植
  13. IDEA 导入 SSM项目
  14. wk一sm5时间温度控制器_吓人!用“御寒神器”取暖,竟上了手术台……注意!温度不高也会烫伤...
  15. java p2p 聊天_P2P--多用户在线聊天室(Java源码)
  16. 小米pro蓝牙驱动linux,【小米笔记本蓝牙驱动下载】小米笔记本蓝牙驱动程序官方下载 V20.11 通用版-七喜软件园...
  17. string 类(二)
  18. office 64位安装
  19. 解析DXF图形文件格式
  20. SkeyeVSS综合安防监控视频云服务使用说明文档

热门文章

  1. bootstrap网格布局自适应问题
  2. 【Pytorch】data.norm(几种范数(norm)的详细介绍)
  3. 内置DSP的数字音频功放芯片优势?
  4. 大神嵌入式linux系统的路径规划与经验分享(干货满满)
  5. 华为云OBS文件服务
  6. 美在线教育商Lynda连续15年盈利 首度融资1亿美元
  7. 关于《推背图》,《奇门遁甲》
  8. color-scheme 属性根据操作系统配色方案调整页面样式
  9. The accumulated size of entities is 50,000,001 that exceeded the 50,000,000 limit set by FEATUR
  10. 【原生Ajax】全面了解xhr的概念与使用。