22
33### 1. BSP简介
44
5- 移植 RT-Thread 操作系统到 一款 ** FPGA 芯片——M2S010** 上 ,该芯片属于 [ Microsemi] ( https://www.microsemi.com/ ) (现Microchip)SmartFusion2系列,是一款** 智能混合型FPGA** ,片上除了 FPGA Fabric 逻辑部分,还包括一个 ARM® Cortex™-M3 内核的 MCU,主频最高 166MHz ,256KB eNVM,64KB eSRAM,集成GPIO、UART、I2C、SPI、CAN、USB等基本外设。
5+ 移植 RT-Thread 操作系统到一款 ** FPGA 芯片——M2S010** ,该芯片属于 [ Microsemi] ( https://www.microsemi.com/ ) (现Microchip)SmartFusion2系列,是一款** 智能混合型FPGA** ,片上除了 FPGA Fabric 逻辑部分,还包括一个 ** ARM® Cortex™-M3 内核的 MCU** ,主频最高 166MHz ,256KB eNVM,64KB eSRAM,集成GPIO、UART、I2C、SPI、CAN、USB等基本外设。
66
77> 关于 Microsemi,第三大 FPGA 厂商,原 Actel 半导体,2010 年,Microsemi 收购 Actel,2018 年, Microchip 收购 Microsemi。
88
99SmartFusion2 内部框图
1010
11- ![ ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread /Microsemi_Smartfusion2_BD.jpg)
11+ ![ Microsemi_Smartfusion2_BD ] ( figures /Microsemi_Smartfusion2_BD.jpg)
1212
13- ### 2. 使用说明
13+ ### 2. 外设支持
1414
15- #### 2.1 FPGA 工程设计
15+ 移植了 RT-Thread 内核,支持线程调度、线程间同步和通信等,目前已经完成了PIN、Serial设备驱动,FinSH组件默认使用uart0设备。
1616
17- FPGA 部分使用 SmartDesign 图形化设计,不需要写 HDL 代码,时钟来自外部 50M 晶体输入,PLL 倍频 100M 提供给 MCU 使用,顶层配置如下图所示:
17+ | ** 片上外设** | ** 支持情况** | ** 备注** |
18+ | :----------------- | :----------: | :------------------------------------- |
19+ | GPIO | 支持 | GPIO_0/1输出,GPIO_2/3输入 |
20+ | UART | 支持 | MMUART0 & MMUART1|
21+ | SPI | 暂不支持 | |
22+ | I2C | 暂不支持 | |
23+ | RTC | 暂不支持 | |
24+ | PWM | 暂不支持 | |
25+ | USB | 暂不支持 | |
26+
27+ ### 3. 使用说明
1828
19- ![ ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/2020-06-02_114736.jpg )
29+ #### 3.1 FPGA 工程设计
2030
21- MSS 部分仅使用到了GPIO 和UART0,其他外设未启用,两个 GPIO 配置成输出模式 :
31+ FPGA 部分使用 SmartDesign 图形化设计,不需要写 HDL 代码,时钟来自外部 50M 晶体输入,PLL 倍频 100M 提供给 MCU 使用,顶层配置如下图所示 :
2232
23- ![ ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/2020-06-02_114816 .jpg)
33+ ![ ] ( figures/top_sd .jpg)
2434
25- 配置完成的 FPGA 工程文件下载: [ fpga_project.rar ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/fpga_project.rar )
35+ MSS 部分仅使用到了GPIO 和UART,GPIO_0和GPIO_1配置成输出输出模式用于驱动LED,GPIO_2和GPIO_3配置成输入模式,用于读取按键输入。
2636
27- #### 2.2 ARM 程序设计
37+ 配置完成的 FPGA 工程文件下载:[ sf2_fpga_prj.rar] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/sf2_fpga_prj.rar )
38+
39+ #### 3.2 ARM 程序设计
2840
2941ARM 程序使用 Keil MDK 5.26 开发,需要安装 M2S 系列芯片支持包:[ Microsemi.M2Sxxx.1.0.64.pack] ( http://www.actel-ip.com/repositories/CMSIS-Pack/Microsemi.M2Sxxx.1.0.64.pack )
3042
3143如果官网下载失败,可以到以下地址下载:[ Microsemi.M2Sxxx.1.0.64.pack] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/Microsemi.M2Sxxx.1.0.64.pack )
3244
3345在官方生成的示例工程目录下,添加 RT-Thread 相关组件,并实现一些对接函数,最终的文件结构:
3446
35- ![ ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/2020-06-04_213532.png )
47+ ![ ] ( figures/files.jpg )
3648
37- ### 3 . 下载和运行
49+ ### 4 . 下载和运行
3850
3951为了能使用 ARM 调试器连接到 ARM 内核,而不是 FPGA,需要把 JTAG_SEL 引脚置为低电平。使用 ARM 调试器,如 JLink,对应连接 JTAG 口的 TMS、TCK、GND 引脚,如果连接正常,可以检测到 ARM 芯片,如下图所示:
4052
41- ![ ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/2020-06-02_115130 .jpg)
53+ ![ ] ( figures/jlink-ob .jpg)
4254
4355配置对应的 Flash 编程算法:
4456
45- ![ ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/2020-06-02_115115 .jpg)
57+ ![ ] ( figures/flash .jpg)
4658
4759下载完成:
4860
49- ![ ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/2020-06-02_115216 .jpg)
61+ ![ ] ( figures/finished .jpg)
5062
5163如果编译 & 烧写无误,下载完成或者按下复位按键之后,会在串口上看到 RT-Thread 的启动 LOG 信息:
5264
53-
5465``` c
5566 \ | /
5667- RT - Thread Operating System
@@ -59,34 +70,22 @@ ARM 程序使用 Keil MDK 5.26 开发,需要安装 M2S 系列芯片支持包
5970msh >
6071```
6172
62- ![ ] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/2020-06-02_115305.jpg )
63-
64- ### 4. 外设支持
65-
66- 目前仅移植了 RT-Thread 内核,支持线程调度、线程间同步和通信等,支持 Finsh 组件,PIN、Serial 等设备驱动将会在以后添加。
67-
68- ### 5. 资料下载
69-
70- 独立的工程文件下载:
71-
72- - FPGA 工程下载:[ fpga_project.rar] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/fpga_project.rar )
73- - ARM 工程下载:[ smartfusion_rtt-master-4.0.3.rar] ( https://wcc-blog.oss-cn-beijing.aliyuncs.com/Libero/RT-Thread/smartfusion_rtt-master-4.0.3.rar )
73+ ![ ] ( figures/log.jpg )
7474
75- ### 6 . 注意事项
75+ ### 5 . 注意事项
7676
7777- FPGA 开发环境基于 Libero V11.8.2.4,向上兼容,不支持低版本 IDE。
7878- ARM 开发环境基于 Keil MDK 5.26,如果使用SoftConsole IDE ,需要修改 ` libcpu ` 内的文件。
7979- 调试内部 ARM 核,需要把 JTAG_SEL 拉低,否则调试器连接不上。
8080- 使用 SoftConsole 开发环境可以直接使用官方的 Flash Pro 调试器进行 ARM 程序的调试。
8181- 内核时钟需要和 FPGA 中 MSS 配置的对应,Libero 自动生成的时钟文件,可以直接替换` bsp\smartfusion2\libraries\sys_config ` 文件夹下的文件 。
8282
83- ### 7 . 参考资料
83+ ### 6 . 参考资料
8484
8585- [ 学习路线 - RT-Thread 文档中心] ( https://www.rt-thread.org/document/site/ )
8686- [ Microsemi Libero系列中文教程] ( https://blog.csdn.net/whik1194/article/details/102901710 )
8787
88- ### 8 . 联系我
88+ ### 7 . 联系我
8989
90- 91- - 主页:www.wangchaochao.top
92- - 微信:wcc149
90+ - Github:[ whik] ( https://github.com/whik )
91+
0 commit comments