从sd卡运行arduino草图
是否可以将草图(.HEX文件)放入SD卡并从SD卡运行? 我的目标是利用SD存储器而不是闪存来编写程序 如果有,是否有图书馆正是这样做的 我所发现的只是“从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
循环
调用在引导加载程序中实现。
因此,我假设引导加载程序中有类似的内容:
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()
1.HEX、2.HEX、3.HEX
0
2
2.HEX
从SD卡复制到程序闪存中通过这种方法,如果我们将闪存程序拆分为更小的子程序,我们可以运行容量超过闪存容量的程序。您要寻找的技术术语是“SD卡引导加载程序” 你调查过这件事吗 据我所知,2boot将首先将十六进制加载到闪存中,然后从那里执行它。这并不完全是您想要的(您希望将其直接加载到RAM,对吗?) 你正在寻找的问题是,arduino的RAM真的很好。直接加载到RAM中也有一些优点。因此,这样的图书馆可能根本不存在 我可以用穷人的方法来做这件事。首先写一个草图,其中包含一个函数,该函数内部有一个无限循环,在这个循环中,放入所需“循环”的代码。在草图的设置中,取指向此函数的指针,并将足够数量的字节写入SD卡上的二进制文件中 然后上载另一个具有空缓冲区的草图。此草图将二进制文件加载到其中,并将其作为指向函数的指针引用。维奥拉,你现在可以执行你的“循环”
这很难看,除非您有直接加载到RAM中的非常具体和各向同性的需求,否则我建议尝试2boot库。谢谢您的回复。嗯,我不需要直接加载到RAM,我需要将编译好的草图存储到SD存储。究竟如何实现这一点并不重要。我已经根据我在2本书中找到的内容更新了这个问题。