18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

[NES]從模板工程到NES模擬的實(shí)現(xiàn) | 技術(shù)集結(jié)

RT-Thread官方賬號(hào) ? 2025-08-23 10:06 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

目錄


摘要視頻


前置準(zhǔn)備


軟件包設(shè)置


CubeMx配置


工程主體


感慨

2 前置準(zhǔn)備


nes游戲就選用最經(jīng)典的SuperMary,先創(chuàng)建一個(gè)基于06_demo_nes_simulator示例的示例工程,找到其中g(shù)ame目錄下的SuperMary.nes文件,將其復(fù)制到SD卡上、

3 軟件包設(shè)置


新建一個(gè)基于RT-Spark的模板工程,進(jìn)入RT setting,進(jìn)入詳細(xì)界面,選中硬件,將以下設(shè)置添加(選中)


<板載驅(qū)動(dòng)設(shè)備>

1.SRAM

2.onboard LCD(ST7789)—>TIM14_CH1

3.File system—>SDCARD


<芯片驅(qū)動(dòng)設(shè)備>

1.PWM14 channel1

2.SPI BUS—>RW007 onboard


添加完成后,ctrl+s保存設(shè)置

4 CubeMx配置


找到board—>CubeMx_Config目錄下的CubeMx_Config.ioc文件,雙擊進(jìn)入STM32CubeMx界面

配置同LCD配置

Timers—>TIM14—>PWM Generation CH1

Connectivity—>FSMC—>LCD1

Memory type

LCD Register Select

Data

LCD Interface

A18

8 bits

設(shè)置完成后,點(diǎn)擊右上角的GENERATE CODE,回到RT-Studio界面

5 工程主體


先構(gòu)建項(xiàng)目,此時(shí),CubeMx_Config目錄下會(huì)多出Drivers,MDK-ARM兩個(gè)文件夾,控制臺(tái)會(huì)出現(xiàn)很多報(bào)錯(cuò),將這兩個(gè)文件夾和Src目錄下的main.c文件刪除,右鍵工程文件—>同步Scons配置至項(xiàng)目

同步完成后,將示例工程application目錄下的main.c的代碼復(fù)制到模板工程相同目錄的main.c文件中進(jìn)行替換,nes文件夾同理復(fù)制到模板工程中,再次構(gòu)建項(xiàng)目,如果出現(xiàn)報(bào)錯(cuò),再次進(jìn)行Scons同步后重復(fù)操作

此時(shí)將工程下載到開(kāi)發(fā)板中,然后打開(kāi)串口工具(?。∮浀貌迳蟂D卡,不然就會(huì)出現(xiàn)如下報(bào)錯(cuò)?。。?/strong>

bf3ac090-7fc5-11f0-9080-92fbcf53809c.png

插上SD卡后,串口工具輸出正常

bf4eaa9c-7fc5-11f0-9080-92fbcf53809c.png

輸入命令nes_start sdcard/SuperMary.nes

然后就能看到,又報(bào)錯(cuò)了…

bf669e2c-7fc5-11f0-9080-92fbcf53809c.png

這里的報(bào)錯(cuò)提示出現(xiàn)了斷言失敗,那么回到RT-Studio分析代碼,搜索small_mem,定位相關(guān)代碼段

bf813098-7fc5-11f0-9080-92fbcf53809c.png

仔細(xì)分析一遍并沒(méi)有發(fā)現(xiàn)代碼有什么問(wèn)題,那么問(wèn)題在哪,為什么會(huì)導(dǎo)致斷言出現(xiàn)?

查閱相關(guān)資料發(fā)現(xiàn),RT_ASSERT的啟用依賴于debug.h頭文件,而在正式發(fā)布產(chǎn)品時(shí),通常會(huì)禁用調(diào)試代碼功能(即不定義RT_DEBUG宏)從而減少代碼體積并提高代碼效率,但是這里又沒(méi)有用到debug相關(guān)的語(yǔ)句

再次檢查代碼發(fā)現(xiàn)并沒(méi)有明顯問(wèn)題,使用BC輔助分析

bf94cfea-7fc5-11f0-9080-92fbcf53809c.png

對(duì)比可以看到模板工程和示例工程的不同點(diǎn),重點(diǎn)關(guān)注各種config文件還有scons文件,這些都與配置有關(guān)

bfa5ef32-7fc5-11f0-9080-92fbcf53809c.png

在rtconfig.h文件中,可以看到,模板工程在這里定義了DEBUG的宏,將這兩行注釋掉,同步scons配置,再次構(gòu)建項(xiàng)目,下載,測(cè)試輸入指令LCD是否成功運(yùn)行游戲

bfb8a726-7fc5-11f0-9080-92fbcf53809c.png

可以看到,這次并沒(méi)有報(bào)錯(cuò),說(shuō)明上述操作正常,但是發(fā)現(xiàn)LCD上依舊是白屏,并沒(méi)有按想象中那樣運(yùn)行游戲,這就很令人疑惑了

雖然沒(méi)有報(bào)錯(cuò),但LCD也沒(méi)有正常工作,那問(wèn)題出在哪了?LCD沒(méi)有運(yùn)行游戲,但是正常亮起,說(shuō)明LCD配置方面沒(méi)有問(wèn)題,而在這個(gè)項(xiàng)目中,RT-Spark開(kāi)發(fā)板上只用到了 LCD,SD插口,按鍵,很顯然按鍵和當(dāng)前問(wèn)題聯(lián)系不大,那么問(wèn)題最有可能出在了SD相關(guān)的東西上

順著上面的思路,可以推測(cè),也許是SD插口相關(guān)配置沒(méi)有正常工作,導(dǎo)致SD插口沒(méi)有讀取到SD卡上的數(shù)據(jù),也有可能是LCD沒(méi)有接收到SD卡傳入的數(shù)據(jù),重新回到代碼分析尋找思路

在application的main.c文件中,可以找到nes_start函數(shù)的定義,正好在輸入指令時(shí)用到了nes_start的指令,而通過(guò)輸入的指令可以看出,nes_start的作用應(yīng)該是讀取SD卡上相關(guān)數(shù)據(jù)

bfc31c38-7fc5-11f0-9080-92fbcf53809c.png

那么可以大膽推測(cè)nes_start和我們想要解決的問(wèn)題有關(guān)聯(lián),分析nes_start函數(shù),可以知道這個(gè)函數(shù)的工作就是讀取nes文件地址,下載nes文件,然后判斷下載的nes文件是否為NULL,這時(shí)根據(jù)這段代碼,又可以發(fā)現(xiàn)些許蹊蹺

if(!nes){ return-1; }

這段代碼在判斷nes是否為空,為空則提前退出,那么,又多了一種可能,就是SD的讀取和LCD的接收都沒(méi)有問(wèn)題,而是提前退出導(dǎo)致nes文件沒(méi)有運(yùn)行,往這個(gè)if中加入一段打印日志的代碼

rt_kprintf("create default!\n");

再次構(gòu)建項(xiàng)目,下載,然后輸入指令

bfd9e206-7fc5-11f0-9080-92fbcf53809c.png

那么問(wèn)題就顯而易見(jiàn)了,程序運(yùn)行到這時(shí)提前退出導(dǎo)致LCD沒(méi)有顯示游戲畫(huà)面,但是,什么原因?qū)е铝顺绦虻奶崆巴顺?,回到BC將模板工程和示例工程的main.c進(jìn)行對(duì)比

可是并沒(méi)有發(fā)現(xiàn)差異,而且發(fā)現(xiàn)application文件夾并沒(méi)有差異,排除法縮小范圍,setting,rt-thread明顯無(wú)關(guān),application,libraries,和Debug沒(méi)有差異,都進(jìn)行排除,再排除一些明顯無(wú)關(guān)的文件

bfe58606-7fc5-11f0-9080-92fbcf53809c.png

那么只剩下了這些部分,rtconfig_preinc.h文件內(nèi)容沒(méi)有差異,Kconfig文件也幾乎沒(méi)有差異,排除

打開(kāi)board目錄,CubeMx_Config,.ignore_format.yml,link.icf,board.h,board.c無(wú)明顯差異也可以進(jìn)行排除

bff329be-7fc5-11f0-9080-92fbcf53809c.png

那么只剩下了這幾個(gè)文件,先分析之前分析過(guò)的rtconfig.h

c003da66-7fc5-11f0-9080-92fbcf53809c.png

這幾段包含了和TIMER有關(guān)的宏定義,考慮到LCD雖然沒(méi)有正常運(yùn)行游戲,但是能正常亮起,先進(jìn)行排除

c0156056-7fc5-11f0-9080-92fbcf53809c.pngc025e07a-7fc5-11f0-9080-92fbcf53809c.pngc033ce92-7fc5-11f0-9080-92fbcf53809c.png

前兩張雖然看不懂,但是明顯和LCD以及nes關(guān)聯(lián)不大,最后一張和網(wǎng)絡(luò)協(xié)議相關(guān),直接排除,那么就排除了rtconfig.h

再來(lái)分析其他文件,.config,cconfig.h文件中的內(nèi)容同理rtconfig.h,排除,那么只剩下了和link相關(guān)的兩個(gè)文件

c03fb928-7fc5-11f0-9080-92fbcf53809c.png

這些和開(kāi)發(fā)板的linker有關(guān),想到之前的一種可能,SD插口與LCD連接配置出問(wèn)題導(dǎo)致LCD接收不到SD插口發(fā)送的數(shù)據(jù),從而程序運(yùn)行時(shí)提前退出,考慮到這種可能,分析代碼發(fā)現(xiàn)

c04d0196-7fc5-11f0-9080-92fbcf53809c.pngc055e662-7fc5-11f0-9080-92fbcf53809c.png

這幾段代碼都和nes相關(guān),將它們復(fù)制過(guò)去,同步scons,構(gòu)建項(xiàng)目,下載,輸入指令,查看運(yùn)行結(jié)果

c05e9a64-7fc5-11f0-9080-92fbcf53809c.pngc066fc04-7fc5-11f0-9080-92fbcf53809c.jpg

游戲正常運(yùn)行,串口工具處也沒(méi)有報(bào)錯(cuò),說(shuō)明操作正確,問(wèn)題解決,nes模擬成功實(shí)現(xiàn)!

6 感概


過(guò)程有那么一點(diǎn)點(diǎn)曲折,但是最終成功分析出了問(wèn)題所在并解決,從模板工程到實(shí)現(xiàn)示例工程的過(guò)程相當(dāng)于從無(wú)到有的創(chuàng)造,滿滿的成就感,仿佛離b站大佬更近了一步()

示例工程雖然很方便,但是只授之予魚(yú)而非漁,從模板工程開(kāi)始,一步一步的創(chuàng)造,雖然做出了以后很有成就感,但還是希望相關(guān)教程能多出一點(diǎn)(一步步推真的很不容易)

此外,在查看日志的時(shí)候還發(fā)現(xiàn)不管是示例工程還是模板工程

c0738a50-7fc5-11f0-9080-92fbcf53809c.png

并沒(méi)有發(fā)現(xiàn)這一段命令打印的路徑日志,也沒(méi)有分析出是什么原因,有知道的大佬可以解答一下

(BC真的很好用)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5177

    文章

    20003

    瀏覽量

    325580
  • SD卡
    +關(guān)注

    關(guān)注

    2

    文章

    580

    瀏覽量

    67303
  • NES
    NES
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    7557
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何安裝模擬器玩nes小游戲-基于米爾瑞芯微RK3576開(kāi)發(fā)板

    本篇源自:優(yōu)秀創(chuàng)作者 小手涼涼本文將介紹基于米爾電子MYD-LR3576開(kāi)發(fā)板(米爾基于瑞芯微 RK3576開(kāi)發(fā)板)的安裝模擬器玩nes小游戲方案測(cè)試。 核心板系統(tǒng) 操作系統(tǒng)鏡像文件說(shuō)明
    發(fā)表于 02-08 12:10

    賺人氣,用STM32F407做個(gè)NES游戲機(jī)玩玩

    的,感謝一下,不過(guò)不爽的是原子的NES是跑在UCOS上的,這個(gè)被我移植裸機(jī)上的,自由度高一點(diǎn),代碼還有BUG,最近忙沒(méi)優(yōu)化,可以公開(kāi)大家一起搞搞,不過(guò)工程都是分開(kāi)的,沒(méi)合到一起,看看大家感興趣不,再傳。`
    發(fā)表于 11-18 11:29

    STM32F1做的NES模擬器 支持聲音及全屏游戲

    最近一直想做個(gè)NES模擬器玩玩,在網(wǎng)上一頓狂搜各種資料,視頻,移值過(guò)很多各版本的模擬器,我感覺(jué)效果最好的是原子哥和ye781205網(wǎng)友的程序。移值很簡(jiǎn)單這里就不提了。這里說(shuō)下改進(jìn):支持DAC輸出
    發(fā)表于 01-31 15:07

    NES模式下規(guī)劃精度及測(cè)試效率提升分析

    NES是什么? NES系統(tǒng)包括哪些部分?有什么應(yīng)用?
    發(fā)表于 06-02 06:40

    ESP32 NES模擬器教程

    (模擬器),玩上幾把小時(shí)候最喜歡玩的游戲,而nes模擬器正是不二之選,通過(guò)制作模擬器我們能學(xué)習(xí)軟硬件各方面的知識(shí),可謂是很多程序員走向編程
    發(fā)表于 01-12 08:20

    游戲精靈NES頂部裝載機(jī)適配器

    描述游戲精靈 NES 頂部裝載機(jī)適配器接口板允許 Game Genie正確連接 NES Top Loader 。提供必要的 1.2
    發(fā)表于 09-08 06:26

    【HD-G2UL-EVM開(kāi)發(fā)板體驗(yàn)】掌上游戲機(jī)之三 —— NES游戲模擬器移植

    前言前面我們完成了USB手柄按鍵采集,RTP實(shí)時(shí)推流H264PC端顯示作為虛擬顯示器。完成了移植NES游戲模擬器的基本要素,這一篇我們開(kāi)始進(jìn)行真正的移植。過(guò)程如下是移植好的代碼git clone
    發(fā)表于 12-22 16:01

    5個(gè)步驟,讓你的核桃派玩回當(dāng)年火爆全球NES游戲

    1.準(zhǔn)備好你的nes游戲: nes游戲鏈接:鏈接:百度網(wǎng)盤 請(qǐng)輸入提取碼 提取碼:k6sh 2.安裝nes游戲模擬器: sudo apt-get install nestopia 3
    發(fā)表于 11-22 10:50

    PC專用經(jīng)典NES手柄

    PC專用經(jīng)典NES手柄 在電腦城轉(zhuǎn)轉(zhuǎn),隨便哪個(gè)攤位都可以看到各種電腦用手柄,這東西實(shí)在是爛大街了,可是今天的新聞不由得讓我頭頂青天了。
    發(fā)表于 03-10 09:28 ?1313次閱讀

    如何使用ESP32和ATtiny861制作NES模擬器游戲控制臺(tái)

     NES模擬器不是ESP32唯一有趣的事情。例如。你可以用它構(gòu)建一個(gè)微型python控制臺(tái)。您需要更改的唯一組件是I2C游戲手柄I2C鍵盤。我認(rèn)為使用ATtiny88控制器制作它并
    的頭像 發(fā)表于 08-27 14:20 ?1.3w次閱讀
    如何使用ESP32和ATtiny861制作<b class='flag-5'>NES</b><b class='flag-5'>模擬</b>器游戲控制臺(tái)

    NES盒式外置硬盤的制作

    現(xiàn)在,您可以使用新的NES驅(qū)動(dòng)器來(lái)容納NES仿真器和所有非法的NES rom。
    的頭像 發(fā)表于 10-10 09:48 ?2700次閱讀

    NES更換PSU PCB開(kāi)源

    電子發(fā)燒友網(wǎng)站提供《NES更換PSU PCB開(kāi)源.zip》資料免費(fèi)下載
    發(fā)表于 07-21 14:49 ?1次下載
    <b class='flag-5'>NES</b>更換PSU PCB開(kāi)源

    游戲精靈NES頂部裝載機(jī)適配器

    電子發(fā)燒友網(wǎng)站提供《游戲精靈NES頂部裝載機(jī)適配器.zip》資料免費(fèi)下載
    發(fā)表于 08-17 09:55 ?0次下載
    游戲精靈<b class='flag-5'>到</b><b class='flag-5'>NES</b>頂部裝載機(jī)適配器

    開(kāi)源!自制NES模擬器,3元MCU也能跑

    器的樂(lè)趣——模擬器已集成LuatOS中!1開(kāi)源NES模擬器簡(jiǎn)介本文演示NES模擬器由合宙社群@
    的頭像 發(fā)表于 04-13 11:06 ?5402次閱讀
    開(kāi)源!自制<b class='flag-5'>NES</b><b class='flag-5'>模擬</b>器,3元MCU也能跑

    超越節(jié)點(diǎn)引擎臨界:華為云 NES 顛覆游戲規(guī)則

    技術(shù)領(lǐng)域,創(chuàng)新是引人注目的產(chǎn)物。華為云 Web3 節(jié)點(diǎn)引擎服務(wù) NES(以下簡(jiǎn)稱:華為云 NES)以卓越的技術(shù)實(shí)力贏得業(yè)內(nèi)良好口碑。在近期 SUSTAINABLE WEB3 SG 2
    的頭像 發(fā)表于 04-07 17:06 ?1171次閱讀