ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【学习笔记】基于Arm Cortex-M0 Designstart Eval设计SOC(一)

2022-01-31 20:33:21  阅读:566  来源: 互联网

标签:文件 SOC cmsdk 示例 Cortex Eval mcu M0


一、简介

本项目是使用Arm Cortex-M0 Designstart Eval进行开发,以下内容来自Arm Cortex-M0 DesignStart Eval User Guide。

点击此处下载Arm Cortex-M0 Designstart Eval

开发环境:

Win10、MDK5、TD(Tang Dynasty)、安路EG4S20 FPGA开发板

二、Designstart Eval文件介绍

点击上方链接申请Arm Cortex-M0 Designstart Eval后,得到一个名为AT510-MN-80001-r2p0-00rel0的压缩包。解压后得到如下文件

1.工具包的主目录

表1描述了设计工具包的主目录。

表1.主目录说明
目录名称目录内容
RecoveryFPGA 映像,包括字节码文件、BIOS、配置和软件二进制文件。
RevCFPGA 设计文件 (Verilog) 和实现流程。
cores/cortexm0_designstart_r2p0混淆Cortex-M0集成级别。
logicalFPGA 设计文件 (Verilog) 和实现流程。
smm_common常见的 FPGA 组件和外设。
software

软件文件。这些包括:

  • 与 CMSIS 兼容的 C 头文件。

  • 示例系统的示例程序文件。

  • 示例设备驱动程序。

systems/cortex_m0_mcuCMSDK 示例系统的设计文件、测试平台文件和仿真设置文件。

systems/fpga_testbench

FPGA 示例系统的测试台文件和仿真设置文件。
documentation文档文件。

2.MCU示例及其余模块 

下图为本项目的MCU系统顶层试图示例,表2解释组成MCU的各模块的含义。

表2. MCU各模块的含义
项目描述

cmsdk_mcu

微控制器设计示例。此级别包含行为记忆和时钟生成组件。

cmsdk_mcu_system

微控制器设计的可合成水平。这将实例化 Cortex-M0 处理器。
CORTEXM0INTERGRATIONCortex-M0 集成层。这是经过混淆和拼合的代码。
cmsdk_apb_subsystemAPB 外设和 APB 基础设施的子系统。
System controller包含用于系统控制的可编程寄存器,例如存储器重映射。
SysTick reference clock系统Tick参考时钟生成逻辑。
cmsdk_ahb_gpio具有 AHB 接口的低延迟 GPIO。每个 GPIO 模块提供 16 个 I/O 引脚。

cmsdk_mcu_clkctrl

时钟和复位生成逻辑行为模型。

cmsdk_mcu_pin_mux

用于 I/O 端口的引脚多路复用器和三态缓冲器。
cmsdk_ahb_rom用于ROM的内存包装器,用于测试不同内存实现的行为。您可以修改 Verilog 参数以更改实现。
cmsdk_ahb_ramRAM 的内存包装器,用于测试不同内存实现的行为。您可以修改 Verilog 参数以更改实现。
cmsdk_ahb_cs_rom_table一个示例系统级 CoreSight ROM 表,它使调试器能够将系统标识为基于 Cortex-M0 的系统。
cmsdk_mcu_addr_decode基于 CMSDK 地址映射为每个内存映射组件生成 HSELS
cmsdk_clkreset生成时钟和复位信号。XTAL1 以 50MHz 的频率运行。它在仿真开始时将NRST LOW断言为5ns。
cmsdk_uart_capture

从 UART2 捕获文本消息,并在仿真期间显示该消息。它在收到回车符后显示消息的每一行。要缩短仿真时间,请将波特率设置为与时钟频率相同。必须将 UART 设置为高速测试模式

下图显示了 Cortex-M0 示例系统的接口。

表3描述系统设计包括的外围组件。

表3.外围组件
项目描述
cmsdk_ahb_gpio两个具有 AHB 接口的低延迟 GPIO。每个 GPIO 模块提供 16 个 I/O 引脚。
cmsdk_apb_timer32 位计时器。
cmsdk_apb_uartA UART.
cmsdk_apb_watchdog与 AMBA 设计套件中的看门狗兼容的看门狗组件。
cmsdk_apb_dualtimers与 AMBA 设计套件中的双定时器模块兼容的双定时器模块。

  表4介绍了Cortex-M0 微控制器中包含的 Verilog 文件。

表4.Cortex-M0 微控制器的 Verilog 文件
文件名描述

cmsdk_mcu.v

微控制器的顶层

cmsdk_mcu_defs.v

示例微控制器的常量定义和配置定义

cmsdk_mcu_system.v

微控制器系统级设计

cmsdk_mcu_sysctrl.v

用于系统级控制的可编程寄存器块

cmsdk_mcu_stclkctrl.v

系统Tick参考时钟生成逻辑

cmsdk_mcu_clkctrl.v

时钟和复位控制

cmsdk_mcu_pin_mux.v

用于 I/O 端口的引脚多路复用器和三态缓冲器
cmsdk_mcu_addr_decode.v基于 CMSDK 地址映射为每个内存映射组件生成 HSELS
cmsdk_ahb_cs_rom_table.vCoreSight system level ROM table for CMSDK

表5介绍了测试平台中包含的 Verilog 文件。

表5.Cortex-M0 微控制器测试平台的验证日志文件
文件名描述

tb_cmsdk_mcu.v

示例微控制器的测试台
cmsdk_clkreset.v时钟和复位发生器
cmsdk_uart_capture.v用于文本消息显示的 UART 捕获
tbench_M0_DS.vcCortex-M0 DesignStart Eval 的 Verilog 命令文件

表6介绍了 FPGA 设计的主要文件(不包括外设)。

表6.Cortex-M0 FPGA 设计的验证日志文件
文件名描述
fpga_top.v顶级 FPGA,具有 I/O 引脚、PLL 和 ddr 焊盘实例、复位控制逻辑
fpga_system.v包装器级别
user_partition.v主系统集成。端口多路复用,内存设备接口,gpio 2/3
cmsdk_mcu_system.v基于 CMSDK 的系统,集成了其他外设
cmsdk_mcu_stclkctrl.v简单的系统信号控制
cmsdk_mcu_sysctrl.v简单的系统控制外设,PMU 支持捆绑
cmsdk_ahb_cs_rom_table.v标准 CMSDK 系统 ROM 表
cmsdk_mcu_addr_decode.vFPGA 版本 cmsdk_mcu_system 的地址解码

表7介绍了测试平台中包含的 Verilog 文件。

表7.Cortex-M0 FPGA 测试平台中包含的 Verilog 文件
文件名描述
tb_fpga.v测试台顶级
cmsdk_uart_capture_ard.vUART 捕获/显示模块
tb_arduino_shield.vArduino Shield 组件的包装器
arduino_adaptor.v用于Arduino Shield的Arm适配器模型
arduino_shield.vArduino shield的测试台模型
GS8160Z36DT.v内存模型
core.v内存模型组件
SPI_EEPROM.v内存模型
I2C_SRAM.v内存模型
IS66WVE409616BLL.v内存模型
scc_tb.vSCC 接口包装器示例

对于系统文件的介绍就到这里。

标签:文件,SOC,cmsdk,示例,Cortex,Eval,mcu,M0
来源: https://blog.csdn.net/m0_66764513/article/details/122761441

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有