You need to prepare /dev/ram1 with the mkrd command.

On Thu, Feb 2, 2023 at 2:29 PM Russell Haley <russ.ha...@gmail.com> wrote:

> On Wed, Feb 1, 2023 at 9:23 PM Xiang Xiao <xiaoxiang781...@gmail.com>
> wrote:
>
> > You can debug sim nuttx with your favorite PC debugger just like a normal
> > host program.
> > Of course, please ensure the debug system is
> > generated(CONFIG_DEBUG_SYMBOLS=y).
> >
>
> I was able to set up KDevelop to run nuttx in the debugger, but the console
> never gave me a nsh> prompt so I wasn't able to enter my app name and run
> it. Nonetheless I was able to run in GDB on the command line. For some
> reason inode_search is returning 0, which is converted to -EEXIST or -17.
>
> Breakpoint 3, inode_reserve (path=0x7fff00000000 <error: Cannot access
> memory at address 0x7fff00000000>, mode=48, inode=0x555555671220
> <g_inode_lock>) at inode/fs_inodereserve.c:174
> 174 {
> (gdb) n
> 184  *inode = NULL;
> (gdb)
> 186  if (path[0] == '\0')
> (gdb) p path
> $47 = 0x7ffff3f2f370 "/dev/ram1"
> (gdb) n
> 193  SETUP_SEARCH(&desc, path, false);
> (gdb)
> 195  ret = inode_search(&desc);
> (gdb)
> 196  if (ret >= 0)
> (gdb) p ret
> $49 = 0
> (gdb) n
> 202      ret = -EEXIST;
> (gdb)
>
> Not sure what to do from here? Any feedback would be great?
>
> Thanks,
> Russ
>
>
> >
> > On Thu, Feb 2, 2023 at 1:00 PM 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