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