STM32怎么把程序存储在外部存储器执行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32怎么把程序存储在外部存储器执行相关的知识,希望对你有一定的参考价值。

不要什么要我选大点的芯片,我是想知道这个功能 BOOT设置我知道,但我不知道外部存储要接哪些接口,不然怎么从外部取。

你这是把STM32当ARM9用呀,你可以看看ARM9,a8,a9的启动过程呀,你看看STM32有哪些功能么?就不要想这些,就算能那速度慢成渣了,本来主频就慢,还在外部执行,又浪费一些总线周期。之前我也想过,要在外部执行都是需要初始化外部存储器的,以模拟ARM9,A8,A9的启动过程,首先从STM32内部flash启动,里面写个Uboot,出初始化STM32的FMC或者FSMC接口上的norflash或者SRAM或者SDRAM,如果程序存在nandflash上,还要初始化nand,然后把nand拷贝到SDRAM或者norflash或者SRAM;然后uboot跳到拷贝程序的地方执行;STM32还要设置MPU,让总线可以访问到FMC或者FSMC的地址空间;这还是理论,更本没法实施,所有的地址控制都要自己手动操作,我想着都头痛了,而且自己又不对cortex-M3或者cortex-M4了解的很透彻,中间遇见的问题可想而知,你有足够的时间可以想想,但是那样还不如直接用cortexA系列,别人硬件就支持这些外部启动。。。 参考技术A 有一种方法(我自己验证过的):还是从片内flash启动,启动后将程序从外部SPI接口的flash(容量比较大,我用的是4M的片子)将程序拷贝到片外RAM,最后将代码重定位到片外的RAM上运行。

过程比较麻烦,而且需要有外部SPI接口的flash,和片外RAM,但好处也显而易见,那就是代码长度将不受片内flash的限制。

AS3 for Android,在外部存储中保存文件(仅在手机重启时可见)

【中文标题】AS3 for Android,在外部存储中保存文件(仅在手机重启时可见)【英文标题】:AS3 for Android, Saving a file in the external storage (Only visible when phone restarts) 【发布时间】:2015-09-20 05:11:36 【问题描述】:

我在设备中找不到我的文件

我正在将文件保存在外部存储中,特别是使用此代码

    private function saveFiles():void
    
        var file1:File = File.applicationStorageDirectory.resolvePath("v/appstorage.doc")
        var file2:File = File.cacheDirectory.resolvePath("v/cache.doc")
        var file3:File = File.desktopDirectory.resolvePath("v/desktop.doc")
        var file4:File = File.documentsDirectory.resolvePath("v/documents.doc")
        var file5:File = File.userDirectory.resolvePath("v/userdir.doc")
        saveFile(file1)
        saveFile(file2)
        saveFile(file3)
        saveFile(file4)
        saveFile(file5)
    

    private function saveFile(file:File):void 
    
        var stream:FileStream = new FileStream();
        stream.open(file, FileMode.WRITE);
        stream.writeUTFBytes(body);
        stream.close();
    

在此之后再次连接手机时看不到文件,我尝试关闭应用程序,尝试重新连接 USB 数据线,按 F5 更新文件夹。

这些文件只有在我重启手机时才可见,所以,我的问题是:

如何保存文件并在不重新启动手机的情况下保存文件并使其可见?

文件保存在v文件夹中,重启后可以通过USB连接手机访问,我可以看到desktop.doc,documents.doc和userdir.doc,变量body是字符串“Hello world” , 我使用的手机是带有 Lollipop 的 Moto G,以及带有 Jelly Bean 的 HTC One S

我正在使用

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

如果有人可以帮我解决这个问题,那就太好了!

【问题讨论】:

我对 Android 中的文件没有任何经验,但通过快速搜索,我找到了可能对您有用的 this answer。特别是最后一段代码。如果这仅适用于媒体,也许有一个文件的等价物,这将有助于您的搜索? 感谢 Joseph,但我正在 AS3 中开发 【参考方案1】:

这就是答案...https://android.stackexchange.com/questions/53422/folder-on-phone-not-showing-in-windows

在我的本地语言中也确实发生过,似乎与 MTP 缓存有关

【讨论】:

【参考方案2】:

图片需要使用mediaScanIntent Android Doc

经过一些快速研究后,这里可能是solution 文件的解决方案

【讨论】:

感谢 Bxtr 但我在 AS3 中开发

以上是关于STM32怎么把程序存储在外部存储器执行的主要内容,如果未能解决你的问题,请参考以下文章

请问啥是fsmc?

Flutter:在外部存储路径上创建目录 - 路径提供程序 getExternalStorageDirectory()

stm32f4 如何往外部存储sram写数据

stm32怎么把函数用变量控制

在外部存储 Flyway 元数据表

如何读取STM32的唯一ID