引言:第八届集成电路创新创业大赛龙芯杯是有关嵌入式SoC设计的
由于我本身是做纯硬件设计,此前没怎么接触软硬协同
玩过Zynq,但是到SDK部分就去吃灰了
现在后悔了,所以,做人一定要有始有终啊~TAT
概述
背景阐述
吹吹水,讲讲FPGA优势
有几个名词需要注意:
嵌入式操作系统
FreeRTOS\Embedded Linux\Zephyr
编译器和工具链
GNU的编译器和工具链
COTS
作者提出的概念,指的是用一大堆通用芯片组成的嵌入式系统产品
Make
一种将代码变为可执行文件的格式命令,一般有Makefile 来配置
FARM
作者提出的一种概念,意思是:FPGA + Arduino + RISC-V + Makefile
FARM分工
FPGA: 外围设备 + 总线 + 复杂外围设备控制器 + 代码载入器(给CPU)
RISC-V: 提供软核CPU,写在FPGA上
RISC-V的配置有两种方式:
1.裸金属系统采用Arduino IDE开发,利用Arduino提供的软件库,编译结果可以在集成环境下直接写入FPGA上的软核。
2.大规模代码的话可通过Make,并通过和RV软核配套的代码载入工具,写进去
裸金属系统可以不经过操作系统干预的情况下,直接在逻辑硬件上执行指令
涉及的名词:
原型版 prototype
硬件工程师参考相关评估版,为新的系统设计出最初的原型版
试验工程 Dummy project
主要是看各个引脚是否可配置
软件工程师为外设编写驱动程序
这需要硬件工程师给软件提供 FPGA设计参考手册,各个部分地址分配,寄存器定义和操作方式
分工之后软件工程师即可开始主体算法的设计
FPGA
第二章开始设计,假设你已经会 Verilog / SystemVerilog
RISC-V
吹牛逼环节
软核处理器 PulseRain Reindeer:https://riscv.org/2018/10/risc-v-contest
小脚丫FPGA开发平台
第9章开始说
C/C++,Make和工具链
第6章开始
嵌入式操作系统
第7章说如何将开源操作系统Zephyr移植到RISC-V处理器上
Arduino集成开发环境
Arduino在处理裸金属系统的时候很占优势,但是需要处理器软核提供代码载入的支持
也要向集成开发环境提供相应的第三方开发包
第8章开始喷
模块授权方式
第10章开始说
PulseRain RTL库
第5章说,对常用外围设备进行讨论,并说明其具体实现方式
有关于RTL库的IP使用的深入问题,10章讨论
资料来源
不用担心
代码来源
封面自己扫