NES是“Nintendo Entertainment System”的缩写,它是任天堂公司在1980年代推出的一款家用游戏机。在日本,它被称为Famicom(Family Computer)。NES于1983年在日本首次推出,随后于1985年在北美地区发行,成为当时家庭游戏市场的主导力量。
这款游戏机因其丰富的游戏库、经典的游戏系列以及在家庭游戏市场的影响力而备受推崇。它引入了许多经典游戏,如《马里奥兄弟》(Super Mario Bros.)、《塞尔达传说》(The Legend of Zelda)、《魂斗罗》(Contra)和《魔界村》(Castlevania)等,这些游戏至今仍然被认为是游戏史上的经典之作。
本次就基于MM32F5333D7PV实现NES模拟器。大概说一下这个芯片的资源。MM32F5330 微控制器搭载了由安谋科技授权的 Armv8-M 架构“星辰” STAR-MC1 处理器,最高工作频率可达 180MHz。内置了 128KB Flash, 32KB SRAM, 所有 Flash 和SRAM 配置 ECC, 并集成了丰富的 I/O 端口和外设模块,包括 2 个 3MSPS 12 位的 ADC,1 个 12 位的 DAC, 2 个模拟比较器, 2 个 16 位高级定时器, 2 个 16 位和 2 个 32 位通用定时器, 2 个 16 位基础定时器和 1 个低功耗定时器,还包含通信接口如 2 个 I2C, 1 个I3C 从机, 3 个 SPI 或 I2S, 4 个 UART, 1 个 USART, 1 个低功耗 UART, 1 个集成了内部 PHY 的 USB 2.0 全速 Device/Host 控制器,以及 1 个 FlexCAN-FD 接口。
资源是完全足够的,使用SPI和按键就可以,Flash和RAM也是足够的。
二、移植过程本次为了方便,就直接使用spi读写flash实验,使用原有驱动驱动LCD TFT
接下来准备驱动lcd,打开spi驱动flash文件,spi驱动中添加lcd的RES和DC引脚
添加通过spi发送函数
添加LCD源码:
添加LCD头文件路径
打开LCD头文件,lcd.h,修改引脚驱动定义
修改LCD读写数据函数:
修改完成后可以先测试一下,我这里就不进行测试了,已经提前测试好了,接下来添加NES模拟器源码,步骤同添加LCD源码,添加完后如下所示
完成的一个效果如下: