SMS就是世嘉游戏,最近在网上找到有人把它移植到STM32F429i_discovey 开发板上,但没写怎么搞地。我偶然又发现一贴附带了游戏的ROM。
我这时才移成功。
下面传下原码
解压打开里边的
Note_app.txt
会看到移植方法介绍:
- Program a Backup copy of your favorite SMS Cartridge in the MCU Flash Memory using ST Flash Utility
using address 0x8040000 and above.
这里说得下个SMS的ROM,我这个找老半了,要不早移了。并且写到0x0804000以上。
那我就下个 ST Flash Utility 并且把BIN文件下到0x0804000.用的是Duffy Duck inHollywood那个bin.
这个工具很方便,用STLINK就可以下。
以下是准备往里下:
以下是下载完必。
- In the file "main.c":
A) Change properly the NUM_CARTRIDGE define with the number of ROM image programmed.
B) Specify in the Cartridge struct for each ROM image programmed:
-The start address in Flash
-The number of 16K block-1 (e.g 0x1f for 512K cartridge, 0x0f for 256k cartridge and so on)
-The short name to dump in the Selector routine.
以上说明了要在main.c改两个地方,一个把ROM数量改了。一个ROM的地址得映射对。
具体程序如下:
typedef struct {
uint32_t flash_address; //Start Address of cartridge image in Flash Memory
uint8_t bank_msk; //Number of 16K banks - 1 (e.g. 256K Rom == 0x0f)
const uint8_t name[23]; //name showed in the power up selection
}ROMS;
#define NUM_CARTRIDGE 5 //Number of Cartridge Image in Flash (1-6)
ROMS Cartridge[NUM_CARTRIDGE]={
// 0123456789012345678901
{0x8080000,0x0f,"Sonic the Hedgehog '91"},
{0x80c0000,0x0f,"Castle of Illusion '90"},
{0x8040000,0x0f," Psyco Fox '89 "},
{0x8100000,0x1f," The Lion King '94 "},
{0x8180000,0x1f," D. Duck in Hollywood "}
};
那么我们要修改的只有两个 1、NUM_CARTRIDGE 为1
2、ROMS 里边的地址映射,我前边是向0x0804000写的所以要改为0x084000
然后把工程,放到(注意这是我的路径)
F:\360Downloads\stsw-stm32138\STM32F429I-Discovery_FW_V1.0.1\Projects\Peripheral_Examples
下然后编译。我很快就编译通过了。
传下工程:
mysms.rar
(1.78 MB)
(下载次数: 63, 2014-3-5 14:49 上传)
注意了,虽然成功了,但我没键盘接口,具体怎么加键盘大家有兴趣可以自己搞下。
本帖最后由 ddllxxrr 于 2014-3-5 15:42 编辑