Hi Justin,

I was assuming you were planning to run it from "nsh>" that is working fine:

nsh> ?
help usage:  help [-v] [<cmd>]

    .           cp          exec        ls          reboot      truncate
    [           cmp         exit        mkdir       rm          uname
    ?           dirname     expr        mkrd        rmdir       umount
    alias       date        false       mount       set         unset
    unalias     dd          fdinfo      mv          sleep       uptime
    basename    df          free        pidof       source      usleep
    break       dmesg       help        printf      test        xd
    cat         echo        hexdump     ps          time
    cd          env         kill        pwd         true

Builtin Apps:

    custom_hello    hello           ostest

    getprime        nsh             sh

nsh> custom_hello

Custom Hello

nsh>

So, probably you forgot to go: make menuconfig => Applications
Configuration -> Custom Apps -> [*] Custom Hello.

However I found an intriguing fact, when I use
CONFIG_INIT_ENTRYPOINT="hello_main" I get it working fine and I see in the
minicom:

Hello, World!!

But, when I changed to CONFIG_INIT_ENTRYPOINT="custom_hello_main" I get
this compilation error:

$ make
CC:  CustomHello.c <command-line>: error: conflicting types for
'custom_hello_main'
CustomHello.c:3:5: note: in expansion of macro 'main'
    3 | int main(void)
      |     ^~~~
In file included from /home/alan/nuttxspace/nuttx/include/stdio.h:28,
                 from CustomHello.c:1:
/home/alan/nuttxspace/nuttx/include/sys/types.h:337:5: note: previous
declaration of 'custom_hello_main' was here
  337 | int CONFIG_INIT_ENTRYPOINT(int argc, FAR char *argv[]);
      |     ^~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [/home/alan/nuttxspace/apps/Application.mk:289:
CustomHello.c.home.alan.nuttxspace.apps.CustomApps.CustomHello.o] Error 1
make[1]: *** [Makefile:51:
/home/alan/nuttxspace/apps/CustomApps/CustomHello_all] Error 2
make: *** [tools/LibTargets.mk:232: /home/alan/nuttxspace/apps/libapps.a]
Error 2



After some investigation I found the root cause, the main was defined this
way:

int main(void)
{
  printf("Custom Hello\n");
  return 0;
}

So, it was generation conflict, then after changing to:

int main(int argc, FAR char *argv[])
{
  printf("Custom Hello\n");
  return 0;
}

Everything worked as expected and I got it on minicom:

Custom Hello

I will submit a patch to fix this example, thank you very much!

BR,

Alan

On Fri, Jul 19, 2024 at 4:37 PM Linotte Justin ... <lutinjisno...@gmail.com>
wrote:

> thanks you for helping me find the solution, i replaced my custom apps
> dir with your to try, but the same problem happen, i think there may be
> a problem with my configuration.
> How do i know what name should i type in "*Application entry point"* so
> that it point to the custom hello main (from CustomHello.c) and that
> nuttx start with my "custom hello" program where i can do what i want into
> ?
> The menuconfig window where i find *"Application entry point"* :
> -------------------
> (Top) → RTOS Features → Tasks and Scheduling
> ↑↑↑↑↑↑↑↑↑↑↑↑↑↑ NuttX/$ARCH Configuration
> [ ] Enable multi handler sharing a IRQ
>      Initialization Task (Via application entry)  --->
> ()  Application argument list
> (2048) Main thread stack size
> (100) init thread priority
> *(CustomHello) Application entry point*
> (CustomHello) Application entry name
> (200) Round robin timeslice (MSEC)
> [ ] Support sporadic scheduling
> (31) Maximum task name size
> [ ] Support parent/child task relationships
> [*] Enable waitpid() API
>      ↓↓↓↓↓↓↓↓↓↓↓↓↓↓
> [Space/Enter] Toggle/enter  [ESC] Leave menu           [S] Save
> [O] Load                    [?] Symbol info            [/] Jump to symbol
> [F] Toggle show-help mode   [C] Toggle show-name mode  [A] Toggle
> show-all mode
> [Q] Quit (prompts for save) [D] Save minimal config (advanced)
>
> Thanks you in advance,
> Justin Linotte
>
> Le 18-07-24 à 20:52, Alan C. Assis a écrit :
> > Hi Linotte,
> >
> > Thanks for testing our tutorials, it is important to validate and find
> > issues.
> >
> > I followed the tutorial here (this is the first time I do it) and it
> worked
> > fine (although copying the text from page removes the comments #)
> >
> > I compressed by CustomApps and shared it:
> >
> >
> https://u.pcloud.link/publink/show?code=XZPzJP0Zh3fACWyHaOHTdsEA8Glg5VmGFwy7
> >
> > Extract it and use some diff tool like meld to compare files and to
> > discover what you did wrong.
> >
> > BR,
> >
> > Alan
> >
> > On Thu, Jul 18, 2024 at 3:01 PM Linotte Justin ...<
> lutinjisno...@gmail.com>
> > wrote:
> >
> >> hello, i hope my question doesn't bother you, i'm an amateur, not a pro
> >> with 40y of experience so it may be dumb for you. i'm also an amateur in
> >> english btw
> >>
> >> when i do make like advised here :
> >>
> >>
> https://nuttx.apache.org/docs/latest/quickstart/compiling_make.html#build-nuttx
> >> i get this :
> >>
> >> :~/pico/nuttx/nuttx$ make
> >> Create version.h
> >> LN: platform/board to /home/default/pico/nuttx/apps/platform/dummy
> >> Register: custom_hello
> >> Register: hello
> >> Register: nsh
> >> Register: sh
> >> Register: getprime
> >> Register: ostest
> >> CPP:
> >>
> /home/default/pico/nuttx/nuttx/boards/arm/rp2040/raspberrypi-pico/scripts/raspberrypi-pico-flash.ld->
> >>
> >> /home/default/pico/nuttx/nuttx/boards/arm/rp2040/raspberrypi-pico/scrLD:
> >> nuttx
> >> arm-none-eabi-ld:
> >>
> /home/default/pico/nuttx/nuttx/staging/libapps.a(builtin_list.c.home.default.pico.nuttx.apps.builtin_1.o):(.rodata.g_builtins+0xc):
> >>
> >> undefined reference to `custom_hello_main'
> >> make[1]: *** [Makefile:197: nuttx] Error 1
> >> make: *** [tools/Unix.mk:546: nuttx] Error 2
> >>
> >> i try to "Extend the apps/ directory to include a new custom directory"
> >> to use my own code into nuttx :
> >>
> >>
> https://nuttx.apache.org/docs/latest/guides/customapps.html#extend-the-apps-directory-to-include-a-new-custom-directory
> >>
> >> i've configured with menuconfig
> >> rtos features>tasks and scheduling>application entry point to
> >> custom_hello (not custom_hello_main)
> >> application configuration>Custom Apps>[*]Custom Hello App
> >>         >program Name is set to custom_hello
> >>
> >> I don't know how i can know the real name of the entrypoint and also how
> >> i can resolve the error when building withmake. i also followed that :
> >>
> >>
> https://nuttx.apache.org/docs/latest/faq/index.html#how-to-start-directly-my-application-instead-starting-nsh
> >> this doesn't explain how you know the ENTRYPOINT name
> >> i'm a bit confused on what to do (maybe you are too because of how i
> write)
> >> thank you if you can help !
> >>
> >>

Reply via email to