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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >