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