Hi Russel,

If all you need is to copy some file.lua to your board, then an
alternative is using TMPFS and transfer the file using zmodem.

Few day ago I created a video tutorial about it:

https://www.youtube.com/watch?v=Ne3SZZrwL9c

BR,

Alan

On 2/2/23, Russell Haley <russ.ha...@gmail.com> wrote:
> I am mistaken. I understood that the rom image was part of the application
> on flash, but had mis-read the documentation of boardctl(BOARDIOC_ROMDISK,
> (uintptr_t)&desc); and thought that the command loaded the image into *RAM*
> (the  BOARDIOC_MKRD command makes the RAM disk. oops!).
>
> Incidentally, neither the romfs example nor my attempt to re-create it
> works in my sim:
>
> osboxes@osboxes ~/n/nuttx (master)> ./nuttx
>
> NuttShell (NSH) NuttX-12.0.0
> nsh> romfs
> ERROR: Failed to create RAM disk: Unknown error
> nsh> rapp
> Starting Russells App 1...
> ERROR: Failed to create RAM disk: Unknown error
> nsh>
>
> I don't know how to debug this "unknown error". I guess I will try to find
> where that error message comes from and hook in GDB? I'm terrible at this
> stuff, someone needs to revoke my compiler license (tee hee).
>
> Cheers,
> Russ
>
> On Wed, Feb 1, 2023 at 7:29 PM Xiang Xiao <xiaoxiang781...@gmail.com>
> wrote:
>
>> romfs is part of your image as the const string. There is no difference
>> from the below manual step.
>>
>> On Thu, Feb 2, 2023 at 10:00 AM Russell Haley <russ.ha...@gmail.com>
>> wrote:
>>
>> > On Tue, Jan 31, 2023 at 6:16 AM Fotis Panagiotopoulos <
>> f.j.pa...@gmail.com
>> > >
>> > wrote:
>> >
>> > > Hello,
>> > >
>> > > Indeed the "proper" way of including a script would be to store it in
>> > > a
>> > > file system.
>> > >
>> > > However, when I needed to include a single and small script and I
>> didn't
>> > > want to introduce a complete FS just for this, I used xxd.
>> > > xxd can convert any file to a C header file.
>> > >
>> > > You can then include the header, and access the whole file as a
>> variable.
>> > > Here is an example:
>> > >
>> > > I added this in my app Makefile:
>> > >
>> > > # Setup any special pre-build context
>> > > context: header
>> > >         $(Q) cd path/to/libs/json.lua/ && xxd -i json.lua >
>> > > json_lua.h
>> &&
>> > > echo -n "const " | cat - json_lua.h > temp && mv temp json_lua.h
>> > >
>> > >
>> > >
>> > > And then I used the file like this:
>> > >
>> > > #include "lua.h"#include "lauxlib.h"#include <string.h>
>> > >  #include "json_lua.h"
>> > >  static int luaopen_json(lua_State * L);
>> > >
>> > >  void ExtLibs_load(lua_State * L){
>> > >         // json.lua#ifdef CONFIG_EXT_LIB_JSON_LUA
>> > >         luaL_requiref(L, "json", luaopen_json, 1);
>> > >         lua_pop(L, 1);#endif}
>> > >
>> > >  int luaopen_json(lua_State * L){
>> > >         const char * modname = lua_tostring(L, 1);
>> > >
>> > >         if (strcmp(modname, "json") != 0)
>> > >                 return luaL_error(L, "cannot load json module");
>> > >
>> > >         if (luaL_loadbufferx(L, (char*)json_lua, json_lua_len,
>> > > "json",
>> > > "t") != LUA_OK)
>> > >                 return lua_error(L);
>> > >
>> > >         lua_call(L, 0, 1);
>> > >
>> > >         return 1;}
>> > >
>> > >
>> > > I hope this helps...
>> > >
>> > That is very helpful, and not just for nuttx development! Thanks for
>> > the
>> > tip.
>> >
>> > The romfs example actually uses xxd as well to convert the filesystem
>> into
>> > hex code that is also stored in a header file. If I am reading the code
>> > correctly, the example app loads the entire filesystem into memory,
>> > which
>> > isn't very efficient and not at all what I wanted. Can someone tell me
>> > if
>> > that's true?
>> >
>> > Thanks,
>> > Russ
>> >
>> > >
>> > >
>> > >
>> > > On Sun, Jan 29, 2023 at 7:34 AM Xiang Xiao
>> > > <xiaoxiang781...@gmail.com>
>> > > wrote:
>> > >
>> > > > You can use the real file system on the device, there are many
>> choices:
>> > > > romfs, littlefs, fatfs, starmtfs and spiffs.
>> > > >
>> > > > On Sun, Jan 29, 2023 at 12:59 PM Russell Haley
>> > > > <russ.ha...@gmail.com
>> >
>> > > > wrote:
>> > > >
>> > > > > On Sat, Jan 28, 2023 at 7:35 PM Xiang Xiao <
>> > xiaoxiang781...@gmail.com>
>> > > > > wrote:
>> > > > >
>> > > > > > You can enable CONFIG_FS_HOSTFS/CONFIG_SIM_HOSTFS, put your
>> scripts
>> > > > into
>> > > > > > some PC folder and run mount this folder from nsh:
>> > > > > > mount -t hostfs -o fs=/path/to/your/pc/folder. /data
>> > > > > >
>> > > > > > While I appreciate the answer, I am using the sim as a testing
>> > > platform
>> > > > > and hoping to move to either an STM32F4/7 or a Sony Spresense. I
>> > > > > am
>> > > > hoping
>> > > > > for a solution that is applicable to an embedded project. If I
>> can't
>> > > just
>> > > > > add files to the initial image then I will look at the romfs
>> example
>> > > and
>> > > > > maybe the next best thing?
>> > > > >
>> > > > >
>> > > > > >
>> > > > > > On Sun, Jan 29, 2023 at 2:24 AM Russell Haley <
>> > russ.ha...@gmail.com>
>> > > > > > wrote:
>> > > > > >
>> > > > > > > Hi,
>> > > > > > >
>> > > > > > > Big thanks to Xiang Xiao for pointing me to the sim:lua
>> > > > configuration.
>> > > > > I
>> > > > > > > was unable to simply include the defconfig file that you
>> > > > > > > linked
>> > to,
>> > > > > but I
>> > > > > > > was able to reconfigure for the sim:lua configuration.  I've
>> now
>> > > got
>> > > > an
>> > > > > > app
>> > > > > > > in the examples folder that includes the Lua interpreter. Is
>> > there
>> > > a
>> > > > > > > tutorial on how to include folders and lua scripts or extra
>> files
>> > > in
>> > > > > the
>> > > > > > > initial file system?
>> > > > > > >
>> > > > > > > Much appreciated,
>> > > > > > > Russ
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>

Reply via email to