どのようにSTM 32 F 1で一人称の3 Dシューティングゲームを保存するには?
8072 ワード
我々は3 D一人称シューティングゲームに言及するたびに、それだけでなく、いくつかのGBまたはGBのハードドライブのストレージ空間の数十の高性能なグラフィックカードを考えることは当然ですので、256 KBのフラッシュでSTM 32 F 103 RCのような小さなボード上に大きな一人称シューティングゲームを保存することが可能ですか?
私たちがUSBケーブルでコンピュータにボードを接続するとき、私たちは100 MB以上でUSBスティックを見ることができました.
次に、USBスティックに90 KBのゲームがあることがわかります.
ダブルクリックしてSTM 32で一人称シューティングを有効にします.
完全なデモプレゼンテーションビデオを参照してくださいRT-Thread YouTube Channel .
RT - threadはオープンソースの組み込みリアルタイムオペレーティングシステムで、コードを保存するGithub , そして、それは詳細なドキュメンテーションを提供します.以下は、このプロジェクトに必要なツールをまとめたものです. ジットバッシュ キール STM 32 RT-Thread source code RT-Thread Env Tool
stm 32にファイルシステムとしてフラッシュをマウントし、cubemxでUSBを有効にします.
USBをオンにした後、外部の結晶がクロック構成でボード上の結晶と一致していることを確認し、USBクロックが48 MHzであることを確認し、それをクリックしてコードを生成します.クロックを変更したので、ボード/cubemxCount config/src/mainの中にvoid - system - systousconfig ( void )関数をコピーする必要があります.Cボード/ボードに.Cと置換します.
次に、bspの下のボードディレクトリのkconfigファイルを変更します.
ハードウェアドライバの設定
2 . RTスレッドコンポーネント-->デバイスドライバ-- MTDとFlashデバイスドライバを使用する
3 . RTスレッドオンラインパッケージ--システムパッケージはfal & littlefsを選択する
RT thread component --デバイス仮想ファイルシステム
設定と終了を保存し、Env内のコマンドを入力してKEILプロジェクトを自動的に生成します.
ls、cat、mkdir、cdのようなLinuxの一般的なコマンドはすべてサポートされているので、ファイルシステムとしてSTM 32でオンチップフラッシュをマウントすることができ、次のステップはUSBスティックとして認識させることです.
同様に、ENV設定でオプションを選択します.
ハードウェアドライバの設定
2 . RTスレッドコンポーネント-->デバイスドライバ-- USBを使う
設定を保存し、プロジェクトファイルをenvで生成します.
最後に、あなたはゲームをコピーし、STM 32のオンチップフラッシュにそれを置く必要があります.
RTスレッドの連絡先情報:
Website | Github | | Facebook |
私たちがUSBケーブルでコンピュータにボードを接続するとき、私たちは100 MB以上でUSBスティックを見ることができました.
次に、USBスティックに90 KBのゲームがあることがわかります.
ダブルクリックしてSTM 32で一人称シューティングを有効にします.
完全なデモプレゼンテーションビデオを参照してくださいRT-Thread YouTube Channel .
RTスレッドを実行する
RT - threadはオープンソースの組み込みリアルタイムオペレーティングシステムで、コードを保存するGithub , そして、それは詳細なドキュメンテーションを提供します.以下は、このプロジェクトに必要なツールをまとめたものです.
2 .オンチップフラッシュファイルシステム
stm 32にファイルシステムとしてフラッシュをマウントし、cubemxでUSBを有効にします.
USBをオンにした後、外部の結晶がクロック構成でボード上の結晶と一致していることを確認し、USBクロックが48 MHzであることを確認し、それをクリックしてコードを生成します.クロックを変更したので、ボード/cubemxCount config/src/mainの中にvoid - system - systousconfig ( void )関数をコピーする必要があります.Cボード/ボードに.Cと置換します.
次に、bspの下のボードディレクトリのkconfigファイルを変更します.
1config BSP_USING_ON_CHIP_FLASH
2 bool "Enable on-chip FLASH"
3 default n
4
5config BSP_USING_USBD_FS
6 bool "Enable USBD as USB device"
7 select RT_USING_USB_DEVICE
8 default n
これにより、BSPディレクトリでConemuを右クリックして設定インターフェイスを確認できますEnv tutorial ) 次のオプションを選択します.ハードウェアドライバの設定
2 . RTスレッドコンポーネント-->デバイスドライバ-- MTDとFlashデバイスドライバを使用する
3 . RTスレッドオンラインパッケージ--システムパッケージはfal & littlefsを選択する
RT thread component --デバイス仮想ファイルシステム
設定と終了を保存し、Env内のコマンドを入力してKEILプロジェクトを自動的に生成します.
1pkgs --update
2scons --target=mdk5 -s
私たちは最初にフラッシュを組織する必要があります、STM 32 F 103 RCは合計256 KBを持ちます.H1extern const struct fal_flash_dev stm32_onchip_flash;
2
3#define FAL_FLASH_DEV_TABLE \
4{ \
5 &stm32_onchip_flash, \
6}
7
8#define FAL_PART_TABLE \
9{ \
10 {FAL_PART_MAGIC_WROD, "app", "onchip_flash", 0, 128*1024, 0}, \
11 {FAL_PART_MAGIC_WROD, "flash0", "onchip_flash", 128*1024, 128*1024, 0}, \
12}
その後、メインを変更します.Cマウントファイルシステム1#include <rtthread.h>
2#include <rtdevice.h>
3#include <board.h>
4#include <fal.h>
5#include <dfs_posix.h>
6
7/* defined the LED0 pin: PC13 */
8#define LED0_PIN GET_PIN(C, 13)
9
10#define FS_PARTITION_NAME "flash0"
11
12int main(void)
13{
14 int count = 1;
15 /* set LED0 pin mode to output */
16 rt_pin_mode(LED0_PIN, PIN_MODE_OUTPUT);
17
18 fal_init();
19
20#ifdef RT_USB_DEVICE_MSTORAGE
21 struct rt_device *flash_dev = fal_blk_device_create(FS_PARTITION_NAME);
22#else
23 struct rt_device *flash_dev = fal_mtd_nor_device_create(FS_PARTITION_NAME);
24#endif
25
26 if (flash_dev == NULL)
27 {
28 rt_kprintf("Can't create a block device on '%s' partition.\n", FS_PARTITION_NAME);
29 }
30 else
31 {
32 rt_kprintf("Create a block device on the %s partition of flash successful.\n", FS_PARTITION_NAME);
33 }
34
35 while (count++)
36 {
37#ifndef RT_USB_DEVICE_MSTORAGE
38 if(rt_device_find(FS_PARTITION_NAME) != RT_NULL)
39 {
40 dfs_mkfs("lfs", FS_PARTITION_NAME);
41
42 if (dfs_mount(FS_PARTITION_NAME, "/", "lfs", 0, 0) == RT_EOK)
43 {
44 rt_kprintf("sd card mount to '/'\n");
45 break;
46 }
47 else
48 {
49 rt_kprintf("sd card mount to '/' failed!\n");
50 }
51 }
52#endif
53 rt_pin_write(LED0_PIN, PIN_HIGH);
54 rt_thread_mdelay(500);
55 rt_pin_write(LED0_PIN, PIN_LOW);
56 rt_thread_mdelay(500);
57 }
58
59 return RT_EOK;
60}
プロジェクトをボードにコンパイルしてダウンロードし、パーティションテーブルを参照してください.ls、cat、mkdir、cdのようなLinuxの一般的なコマンドはすべてサポートされているので、ファイルシステムとしてSTM 32でオンチップフラッシュをマウントすることができ、次のステップはUSBスティックとして認識させることです.
チップ上のマウントオンチップフラッシュ
同様に、ENV設定でオプションを選択します.
ハードウェアドライバの設定
2 . RTスレッドコンポーネント-->デバイスドライバ-- USBを使う
設定を保存し、プロジェクトファイルをenvで生成します.
1scons --target=mdk5 -s
コンパイルしてボードにダウンロードして、コンピュータにUSBを接続してください、例えばSTM 32 F 103 USB PINがPA 11とPA 12であるならば、あなたはコンピュータが新しいUSBスティックを認識するのを見ます.最後に、あなたはゲームをコピーし、STM 32のオンチップフラッシュにそれを置く必要があります.
RTスレッドの連絡先情報:
Website | Github | | Facebook |
Reference
この問題について(どのようにSTM 32 F 1で一人称の3 Dシューティングゲームを保存するには?), 我々は、より多くの情報をここで見つけました https://dev.to/abby06/how-to-save-first-person-3d-shooters-on-stm32f1-3gemテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol