rt-thread/bsp/smartfusion2
whik 02c6c92a19 add support for SmartFusion2 family FPGA 2020-06-05 21:56:40 +08:00
..
CMSIS add support for SmartFusion2 family FPGA 2020-06-05 21:56:40 +08:00
hal add support for SmartFusion2 family FPGA 2020-06-05 21:56:40 +08:00
libraries add support for SmartFusion2 family FPGA 2020-06-05 21:56:40 +08:00
obj add support for SmartFusion2 family FPGA 2020-06-05 21:56:40 +08:00
user add support for SmartFusion2 family FPGA 2020-06-05 21:56:40 +08:00
README.md add support for SmartFusion2 family FPGA 2020-06-05 21:56:40 +08:00
del_obj_file.bat add support for SmartFusion2 family FPGA 2020-06-05 21:56:40 +08:00

README.md

移植RT-Thread到Microsemi SmartFusion2系列FPGA芯片

1. BSP简介

移植 RT-Thread 操作系统到 一款 FPGA 芯片——M2S010 上,该芯片属于 Microsemi现MicrochipSmartFusion2系列是一款智能混合型FPGA,片上除了 FPGA Fabric 逻辑部分,还包括一个 ARM® Cortex™-M3 内核的 MCU主频最高 166MHz 256KB eNVM64KB eSRAM集成GPIO、UART、I2C、SPI、CAN、USB等基本外设。

关于 Microsemi第三大 FPGA 厂商,原 Actel 半导体2010 年Microsemi 收购 Actel2018 年, Microchip 收购 Microsemi。

SmartFusion2 内部框图

2. 使用说明

2.1 FPGA 工程设计

FPGA 部分使用 SmartDesign 图形化设计,不需要写 HDL 代码,时钟来自外部 50M 晶体输入PLL 倍频 100M 提供给 MCU 使用,顶层配置如下图所示:

MSS 部分仅使用到了GPIO 和UART0其他外设未启用两个 GPIO 配置成输出模式:

配置完成的 FPGA 工程文件下载:fpga_project.rar

2.2 ARM 程序设计

ARM 程序使用 Keil MDK 5.26 开发,需要安装 M2S 系列芯片支持包:Microsemi.M2Sxxx.1.0.64.pack

如果官网下载失败,可以到以下地址下载:Microsemi.M2Sxxx.1.0.64.pack

在官方生成的示例工程目录下,添加 RT-Thread 相关组件,并实现一些对接函数,最终的文件结构:

3. 下载和运行

为了能使用 ARM 调试器连接到 ARM 内核,而不是 FPGA需要把 JTAG_SEL 引脚置为低电平。使用 ARM 调试器,如 JLink对应连接 JTAG 口的 TMS、TCK、GND 引脚,如果连接正常,可以检测到 ARM 芯片,如下图所示:

配置对应的 Flash 编程算法:

下载完成:

如果编译 & 烧写无误,下载完成或者按下复位按键之后,会在串口上看到 RT-Thread 的启动 LOG 信息:

 \ | /
- RT -     Thread Operating System
 / | \     4.0.3 build Jun  2 2020
 2006 - 2020 Copyright by rt-thread team
msh >

4. 外设支持

目前仅移植了 RT-Thread 内核,支持线程调度、线程间同步和通信等,支持 Finsh 组件PIN、Serial 等设备驱动将会在以后添加。

5. 资料下载

独立的工程文件下载:

6. 注意事项

  • FPGA 开发环境基于 Libero V11.8.2.4,向上兼容,不支持低版本 IDE。
  • ARM 开发环境基于 Keil MDK 5.26如果使用SoftConsole IDE ,需要修改 libcpu 内的文件。
  • 调试内部 ARM 核,需要把 JTAG_SEL 拉低,否则调试器连接不上。
  • 使用 SoftConsole 开发环境可以直接使用官方的 Flash Pro 调试器进行 ARM 程序的调试。
  • 内核时钟需要和 FPGA 中 MSS 配置的对应Libero 自动生成的时钟文件,可以直接替换bsp\smartfusion2\libraries\sys_config文件夹下的文件 。

7. 参考资料

8. 联系我

  • 邮箱wangchao149@foxmail.com
  • 主页www.wangchaochao.top
  • 微信wcc149