首页 » 科学 » ARM Cortex M0移植到FPGA_文件_工程

ARM Cortex M0移植到FPGA_文件_工程

南宫静远 2024-11-10 09:50:32 0

扫一扫用手机浏览

文章目录 [+]

ARM公司已经开放ARM Cortex M0 内核,直接可以在ARM官网开拓者页面进行下载,须要注册账号。

下载压缩包解压目录如下:

ARM Cortex M0移植到FPGA_文件_工程 科学

个中AT510-MN-80001-r2p0-00rel0\RevC\SMM_M0DS\synthesis路径下有个Quartus 实例工程,由于本文利用的是xilinx的ARTIX-7系列FPGA芯片开拓板为AX7035,以是参照实例工程进行移植。

打开Vivado 2022.1创建新的工程,创建顶层fpga_top.v,定义模块接口

利用利用时钟IP创建PLL模块

为了标识易懂方便模块名以及旗子暗记进行改名,可以根据自己的设计须要添加时钟输出路数

点击ok完成PLL模块设置,回到顶层文件fpga_top.v进行例化pll:

回到下载好的M0内核根目录下:

复制cores和logical两个文件夹内容到工程目录下并新建文件cmsdk,回到AT510-MN-80001-r2p0-00rel0\systems\cortex_m0_mcu\verilog路径将:

复制到新建cmsdk文件夹下,终极目录如下:

在工程中先添加cmsdk文件,自顶向下,添加所需文件

创建一个hex文件作为M0内核镜像文件,添加到工程,将其文件属性改为内存文件

回到顶层,在顶层列化cmsdk_mcu:

利用SWD接口。
由于是在FPGA上进行移植,ROM和RAM例化需修正参数,打开cmsdk_mcu对ROM和RAM例化参数进行修正,修正原则参照自己FPGA的资源进行修正,对付内存类型参照下图文件内的注释进行理解:

由于ROM列化利用FPGA RAM模块,以是打开cmsdk_ahb_rom模块

找到cmsdk_fpga_rom #(.AW(AW), . file (filename)) u_fpga_rom

改为cmsdk_fpga_sram #(.AW(AW), .MEMFILE(filename)) u_fpga_rom

绑定干系引脚

综合剖析天生比特流下载到FPGA或者外部存储器中,

烧到FPGA完成,由于直接烧录到FPGA掉电易失落,可以烧录到FPGA外部存储芯片,至于为何参考该FPGA数据手册操作如下

创建Keil cotex M0测试工程,利用JLink SWD将对付接口连接,可以通过Keil读取到ID号

Cortex M0芯片烧录算法:

在Keil的pack包路径下有个样板,将其复制出来进行修正,

编译天生keil相应的烧录算法,将烧录算法文件复制到keil 相对付路径,添加烧录文件到上述的测试keil工程中去

编写大略测试程序

编译工程点击下载

下载成功,点击仿真

将全局变量添加到监视窗口,全速运行看变量是不是在变动

外设测试,根据参照官方给出的文档AT510-MN-80001-r2p0-00rel0\documentation下进行编写代码:

AHB地址映射为:

内存地址

功能

0x00000000-0x003FFFFF

ROM,大小为2^AW

0x20000000-0x207FFFFF

RAM,大小为2^AW

0x40000000-0x4000FFFF

APB外设挂载地址

0x40010000-0x40010FFF

GPIO #0

0x40011000-0x40011FFF

GPIO #1

0x4001F000-0x4001FFFF

系统掌握寄存器

0xF0000000-0xF0000400

系统ROM表

APB地址映射为:

内存地址

功能

0x40000000-0x40000FFF

Timer0

0x40001000-0x40001FFF

Timer1

0x40002000-0x40002FFF

Dual Timer

0x40004000-0x40004FFF

UART0

0x40005000-0x40005FFF

UART1

0x40006000-0x40006FFF

UART2

0x40008000-0x40008FFF

Watchdog

0x4000B000-0x4000BFFF

APB test slave

到此大略的移植就搞定了,砍掉官方例程VGA、SPI等,移植最大略的内核到FPGA,其他外设拓展或者优化可根据自己的想法设计好挂载上去即可。

补充内容GPIO测试:

1.创建设备头文件

2.编写设备头文件定义GPIO寄存器构造体以及地址

在main.c文件加入设备头文件进行GPIO程序编程,根据FPGA开拓板硬件事理图以下:

回到FPGA工程,查找到绑定到编号GPIOx.x 进行编程实现掌握LED闪烁;

测试代码

视频加载中...

标签:

相关文章

R语言中的指数计算,方法与应用

在现代社会,随着大数据和人工智能的快速发展,R语言作为一种强大的统计和绘图语言,在数据分析领域发挥着越来越重要的作用。指数计算作为...

科学 2025-01-05 阅读0 评论0

R语言函数的强大魅力与应用

在当今数据科学时代,R语言以其卓越的功能和强大的数据处理能力,在全球范围内受到广泛关注。R语言拥有丰富的函数库,这些函数在数据分析...

科学 2025-01-05 阅读0 评论0

R语言包创建,方法与创新之路

随着大数据时代的到来,R语言因其强大的数据处理和分析能力而备受关注。在众多R语言爱好者中,创建R语言包成为了一种趋势。本文将探讨R...

科学 2025-01-05 阅读0 评论0