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