Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从sd卡运行arduino草图_Arduino - Fatal编程技术网

从sd卡运行arduino草图

从sd卡运行arduino草图,arduino,Arduino,是否可以将草图(.HEX文件)放入SD卡并从SD卡运行? 我的目标是利用SD存储器而不是闪存来编写程序 如果有,是否有图书馆正是这样做的 我所发现的只是“从sd卡上闪烁arduino”,这不是我所需要的 更新: 草图的循环调用在引导加载程序中实现。 因此,我假设引导加载程序中有类似的内容: while(true) { call_sketch_loop(); } 可以换成这个吗 //signature changed from void loop() to int loop() whil

是否可以将草图(.HEX文件)放入SD卡并从SD卡运行? 我的目标是利用SD存储器而不是闪存来编写程序

如果有,是否有图书馆正是这样做的

我所发现的只是“从sd卡上闪烁arduino”,这不是我所需要的

更新: 草图的
循环
调用在引导加载程序中实现。 因此,我假设引导加载程序中有类似的内容:

while(true)
{
    call_sketch_loop();
}
可以换成这个吗

//signature changed from void loop() to int loop()
while(true)
{
    int retval = call_sketch_loop(); //get loop call's return value

    if( 0 == retval )
        continue; // if 0, iterate the loop as usual
    else
    {
        //copy 1.HEX from sd to flash and reboot
        copy_hex_from_sd_to_flash( retval + ".HEX" );
        reboot();
    }
}
  • 将循环信号更改为
    int loop()
  • 将{int}.HEX文件放入SD卡-
    1.HEX、2.HEX、3.HEX
  • loop()调用返回
    0
  • 像往常一样继续下一次迭代
  • loop()调用返回
    2
  • 将文件
    2.HEX
    从SD卡复制到程序闪存中
  • 重新启动设备

  • 通过这种方法,如果我们将闪存程序拆分为更小的子程序,我们可以运行容量超过闪存容量的程序。

    您要寻找的技术术语是“SD卡引导加载程序”

    你调查过这件事吗

    据我所知,2boot将首先将十六进制加载到闪存中,然后从那里执行它。这并不完全是您想要的(您希望将其直接加载到RAM,对吗?)

    你正在寻找的问题是,arduino的RAM真的很好。直接加载到RAM中也有一些优点。因此,这样的图书馆可能根本不存在

    我可以用穷人的方法来做这件事。首先写一个草图,其中包含一个函数,该函数内部有一个无限循环,在这个循环中,放入所需“循环”的代码。在草图的设置中,取指向此函数的指针,并将足够数量的字节写入SD卡上的二进制文件中

    然后上载另一个具有空缓冲区的草图。此草图将二进制文件加载到其中,并将其作为指向函数的指针引用。维奥拉,你现在可以执行你的“循环”


    这很难看,除非您有直接加载到RAM中的非常具体和各向同性的需求,否则我建议尝试2boot库。

    谢谢您的回复。嗯,我不需要直接加载到RAM,我需要将编译好的草图存储到SD存储。究竟如何实现这一点并不重要。我已经根据我在2本书中找到的内容更新了这个问题。