11/15/2018

全国嵌入式大赛/国芯C*CORE芯片感想(吐槽向)

还能感想啥,我国嵌入式发展还任重道远呗

比赛介绍

总之,是个(看起来)比较正规的嵌入式比赛,今年首次举办,全名是全国大学生嵌入式芯片与系统设计竞赛,是教指委和中国电子学会联合举办的。当然,主办单位很重要,这决定了

  1. 比赛里拿奖可以抵学分省钱加GPA
  2. 这个比赛不用交参赛费
  3. 路费可以报销
  4. 实验材料也可以报销

好,反正不要白不要,白嫖党出现!这个比赛是开放式题目,只要使用组委会指定的开发平台,可以自己设计项目并完成。评审时根据根据参赛作品的完成度、创新性、难度及文档质量、答辩状况等情况进行评奖。

报名

按照某个天天吹嘘自己排名前十几名脚踩东南拳打复旦的lj学校的作风,我终于在这个比赛报名截止的最后一天早上接到了报名通知。好吧,谁叫他是第一届呢,咱之前也没关注过这个比赛。既然学校还是按时通知了咱,咱就开开心心的组队报名呗。

等等,就一上午时间,你让我找两个志同道合的小伙伴,还要设计一个项目,再写一个项目简介出来?

不急不急慢慢来,咱先想想要做啥。这次比赛学校指定,只能使用苏州国芯C*Core芯片参加比赛(这是什么PY交易)。网上查了一圈,资料=0,介绍=0,好不容易找到一个芯片公司的官网,一股文艺复兴的气息扑面而来,也没找到这个芯片。然后准备到万能的TB搜搜看,好吧,也没有。那只能翻翻组委会的材料了。

国芯CCORE A5(ET300) 商密型号SSX1708安全芯片 采用国内具有自主知识产权的32位CPU安全内核C*CORE C0进行设计具有低功耗、高性能、多功能及高安全性等特点,可广泛应用于加密手机等产品中,以及网上银行、移动支付、数据安全、保密通信、版权控制和智能电网等领域。

低功耗 32 位 RISC 核芯,高度优化的 3 级流水线

256 K 字节 SRAM, 64 K 字节 ROM

好,那估计和STM32差不多,没有mmu跑不了系统,选题范围也就缩小到STM32能做的范围里了。那也就是无人机一类的了吧,时间紧迫,就先定下做个无人机,具体要加什么功能进去,是循迹还是跟踪还是避障就再说吧。

想好了做啥,下一步就是找人了,果不其然,大四是不可能找到有谁陪你搞竞赛的。虽然比赛没有限制最少人数,但是一个人参赛也太寒碜了,(总之先让女朋友挂了个名)。

国芯C*Core芯片

外观

首先来看一下这个神器的芯片和这个神奇的开发板:

CCORE A5(ET300)开发板

好嘛,说实话我拿到这块板子就震惊了。你这芯片到底干啥的,厚5mm,大小得有个3cm见方。QFP208封装。配的电源是5V3A(15W),还不能usb供电。然后手册上说:用于 加密手机 网上银行, 具有低功耗的特点。我当场就懵比了。(行吧,也许你心目中的手机能塞进去这么大块的芯片吧)

然后看一下随光盘附送的资料。

  • 找编译器,没有
  • 找IDE, 有个文件说到百度网盘下载(好吧你公司可真穷
  • 找芯片手册:有是有,但是上面是个QFN32封装的芯片,这。。我拿错板子了?
  • 继续看芯片手册: 给了寄存器地址和操作说明,还行
  • 继续看芯片手册: 哎 这个结构图怎么这么眼熟,网上截的图吧,能不能截清楚一点
  • 继续看芯片手册: 好不容易看到一个自己画的图,芯片的封装图。好嘛,里面所有字大小都不一样,还一半是sans 一半是serif
  • 继续看芯片手册: 哦这个芯片的特色是加密啊,有什么加密功能我康康: 计算SHA-1 SHA-256 SM3(国密摘要算法,类似md5),没了。emmm,我装你这么大一个芯片就算这?算一堆摘要?合着我CPU算不来摘要还是咋。速度30M/s,很快嘛?
  • 继续找其他手册: 哎你这不是苏州国芯么,怎么手册里全是天津国芯,这么国际化的么,公司到处都有
  • 找到一个demo,标准库竟然还集成在demo里面,没有独立标准库,好的吧(每次编译都要把标准库编译一下,编译个helloworld,出去喝杯茶都来得及
  • 然后就没了 你的指令集呢? 你的标准库的手册呢?? 怎么我靠猜的用你的库啊

事实证明,我确实是靠猜的找出来他的指令集,然后靠猜的用会了他的标准库。

开发

好吧,闲话不多说,我们先到百度网盘下载他这个自主知识产权的IDE。(图片源自官方文档)

CCORE IDE

这TM不是eclipse么

好吧,我不喜欢这个,太慢了,我还是看看他的指令集自己搞一个出来。他这个自主知识产权的CPU,什么C*CORE指令集,怎么就没有手册呢。哦对了,我看看他的编译器,应该能看出点什么。打开eclipse配置,找到编译器,mcore-elf-gcc。好 那指令集是mcore。查一查,原来是Motorola在1997年开发的伪32位指令集,

CCORE 介绍

好吧你说是啥就是啥吧

运行

它提供的eclipse还不能下载程序,只能在线调试,要想下载到芯片中,要先编译出bin文件,再打开他的下载程序,再下载到芯片中。

下载的时候有两个选项,一个是Release,一个是Debug,像我这种仔细看文档的人在下载之前就看到上面说如果你用Release方式下载以后就会锁死下载功能,就再也连不上下载器了。然后发板子之后的一周,竞赛群里所有人都在问,为什么我的板子连不上下载器,我微微一笑,哈哈哈哈哈哈哈哈哈哈哈哈。

(其实也是有解决方案的,要用调试器下载进去一个清除程序

比赛

关于我的比赛

最后拿了二等奖,其实我也没觉得什么,毕竟人数不够,而且我本人也没下什么辛苦,可能加起来放在这个上面的时间也不超过12个小时。

但是答辩的时候真tmd气坏我了。 我做的是无人机飞控,然后评委一上来先来了一句:

(评委) 你这个无人机是买的吧

(我) 对 我们主要是做这个飞控系统,架子…

(评委打断) 别管飞控,你的无人机架是买的吧

我tm当时就蒙了,合着你们教出来高材生参加电设啥的比赛做无人机的架子是自己木头削的?

好好好,不管他,接着说,

(我) 因为官方的IDE不好上手,下载程序比较繁琐,我自己写了个Bootloader,还移植了Arduino的IDE,可以使用串口下载程序并直接运行

(评委) 串口速度不够吧

(我: 你tm用的是20世纪的串口还是要用串口传个电影) 够的,正常电脑支持的115200波特率已经可以瞬间下载完程序文件,而且我们还特意增加了对更高波特率的支持,测试到921600都没有问题

(评委) 嗯…所以你就是做了个串口下载器呗

(我:?????) 不是的,主要工作是做了这个Bootloader,他拥有许多功能,可以通过串口下载程序,也拥有CUI界面,可以手动控制读取芯片内容或者擦除芯片信息。另外还移植了方便易用的Arduino IDE,一键就可以完成编译下载,方便更多人使用,而且我们制作了Arduino的国芯标准库,直接用简单的Arduino代码就可以给这个芯片编程,现有的Arduino程序也可以放在国芯上面跑

(评委 好像没听懂) 所以人家都有IDE了你为啥还要自己做一个

(我 好吧 这下我直接没话说。我说了半天你没听懂,然后觉得已经有的东西我没必要做) emmmm, 因为我的同学在用官方的IDE的时候遇到了很多问题无法解决,也导致很多人放弃了这个项目和比赛,我就想如果能让开发流程更加简单,就能让更多人接触到国产芯片,也就…

(评委 打断)好了时间到了 你可以走了

好吧好吧,毕竟是第一届比赛,可能请的评委没什么水平,听不懂我说的,要不就是我太没有水平,做bootloader小学生都会,是吧

关于其他人的比赛

下午有一等奖得主的演示,我看看,拿一等奖的都是什么大佬

首先映入眼帘的是:”人体摔倒检测系统“!!!

好,这个机器有多么高级呢:一个大白盒子,在老人发生摔倒之后及时检测和预警,并且通知家人或者邻居,告知摔倒的发生。本产品使用了 FRDM-K64 开发板的 LED、蓝牙串口等多种模块,配合MPU9250 数字陀螺仪以及蜂鸣器等完成了整个系统的硬件搭建。

合着你就用了个陀螺仪然后倒了就响呗。

然后我就想起上午测评时历历在目(耳?)的一段对话:

(评委) 你们这个摔倒检测器,假如老人蹲下捡东西的时候会不会响

(学生) 这个也会响 这个我们后面可以优化…

然后就一等奖了

??????


好吧,然后是:”智能家居宠物伴侣“!!

哇 紧跟时代的步伐,竟然在小小的嵌入式芯片上实现了人工智能!

(选手) 能帮我开一下灯嘛

(小车) 已为您开好灯

哇 太厉害了吧,这芯片算的过来嘛?

答案当然是算不过来,直接录音用4G发到阿里的语音API再把结果播放出来的

然后就一等奖了


好吧 然后是:“基于龙芯2k1000龙芯派的python实现图像识别处理”!

哇 这个也紧跟时代步伐啊,竟然自己实现了图像识别!

(选手) 我们在龙芯派的linux系统中,用python编写了图像识别程序

行吧,我用电脑的python也能实现,网上不是随便抄么

然后就一等奖了


然后是:“纵向自平衡AI摩托车”

哇 这个看起来很高端啊,这车怎么碰都不倒啊

评委,你能不能解释下为啥你不问他们这个是不是网上买的,至少也问问代码是不是买的把

当然也是一等奖


总结

当然参加这个比赛我是很开心的,不仅白嫖了一堆好电机,电池还有驱动啥的,还搞到6个学分,还白住两天高级酒店,哈哈哈

1000块钱奖金也不算太穷吧,虽然还比不上我报销的东西的1/5

但是这些评委真的是可以再努努力换一波了。我到现在没搞清楚你们是小学生小制作大赛还是嵌入式大赛,感觉就我一个做的嵌入式方面的项目还被喷了半天跑题了

那请给我解释解释什么是嵌入式?