An earlier screen shot showed a compiler warning for the function being implicitly declared - so no lower driver function is actually present/included? Surprised it's just a warning though.
>-----Original Message----- >From: Alan Carvalho de Assis <acas...@gmail.com> >Sent: 18 August 2021 12:38 >To: dev@nuttx.apache.org >Subject: Re: Creating our own driver in NUCLEO-H743ZI2 with Nuttx rtos > >Hi Rushikesh, > >Since it is there the /dev/userleds0 should be registered. > >Please open your drivers/leds/userled_lower.c and modify it to print some info: > >int userled_lower_initialize(FAR const char *devname) { > int ret; > > ledinfo("Initializing LEDs\n"); > > g_lednum = board_userled_initialize(); > ret = userled_register(devname, &g_userled_lower); > if (ret < 0) > { > lederr("Failed to register userled: %d\n", ret); > } >} > >Then run it with LED debug enabled. > >BR, > >Alan > >On 8/18/21, rushi ghatkar <rushighatka...@gmail.com> wrote: >> Hi @Alan sir, >> >> Found *System.map* and checked for *userled_lower_initialise* and it's >> there. Means my firmware has it. Please find the attached image. >> >> Then what is the problem? and how to solve it? >> >> >> >> Regards, >> Rushikesh >> >> On Wed, Aug 18, 2021 at 4:39 PM Alan Carvalho de Assis >> <acas...@gmail.com> >> wrote: >> >>> "Open your System.map and search for userled_lower_initialize" >>> >>> On 8/18/21, rushi ghatkar <rushighatka...@gmail.com> wrote: >>> > Hi, >>> > >>> > @Alan sir, I have enabled the debug option and checked, it still >>> > gives >>> the >>> > same error message in nsh> prompt whenever I run the built-in >>> > driver or >>> my >>> > own driver. >>> > Please find the attached image. >>> > >>> > it's not reaching to* /dev/userleds* path. >>> > >>> > >>> > Regards, >>> > Rushikesh Ghatkar >>> > >>> > On Tue, Aug 17, 2021 at 6:59 PM Alan Carvalho de Assis < >>> acas...@gmail.com> >>> > wrote: >>> > >>> >> The /dev/userleds is created this way: >>> >> >>> >> ret = userled_lower_initialize("/dev/userleds"); >>> >> >>> >> Open your System.map and search for userled_lower_initialize, if >>> >> you find it, this mean your firmware has it and the issue is >>> >> probably some error during the initialization. >>> >> >>> >> *Please* enable the DEBUG LEDS: >>> >> >>> >> Build Setup ---> >>> >> Debug Options ---> >>> >> [*] Enable Debug Features >>> >> [*] Enable Error Output >>> >> [*] Enable Warnings Output >>> >> [*] Low-level LED Debug Features >>> >> [*] LED Driver Error Output >>> >> [*] LED Driver Warnings Output >>> >> [*] LED Driver Informational Output >>> >> >>> >> BR, >>> >> >>> >> Alan >>> >> >>> >> On 8/17/21, rushi ghatkar <rushighatka...@gmail.com> wrote: >>> >> > Hi, >>> >> > >>> >> > How to create * /dev/userleds* ? >>> >> > >>> >> > I have searched for it but can't find it. >>> >> > Need Help. >>> >> > >>> >> > >>> >> > Regards, >>> >> > Rushikesh Ghatkar >>> >> > >>> >> > On Mon, Aug 16, 2021 at 6:32 PM Alan Carvalho de Assis < >>> >> acas...@gmail.com> >>> >> > wrote: >>> >> > >>> >> >> Did you look at /dev? I think the /dev/userleds is not created. >>> >> >> >>> >> >> Try to enable the DEBUG LED to see that is going on. >>> >> >> >>> >> >> BR, >>> >> >> >>> >> >> Alan >>> >> >> >>> >> >> On 8/16/21, rushi ghatkar <rushighatka...@gmail.com> wrote: >>> >> >> > Hi, >>> >> >> > >>> >> >> > I have changed the declaration but it still gives some warning. >>> >> >> > Please >>> >> >> find >>> >> >> > the attached image. >>> >> >> > >>> >> >> > and when I flash code and use picocom it still gives an error. >>> >> >> > Please >>> >> >> find >>> >> >> > the attachment. >>> >> >> > >>> >> >> > >>> >> >> > Regards, >>> >> >> > Rushikesh Ghatkar >>> >> >> > >>> >> >> > On Mon, Aug 16, 2021 at 5:25 PM Alan Carvalho de Assis < >>> >> >> acas...@gmail.com> >>> >> >> > wrote: >>> >> >> > >>> >> >> >> You need to declare all LEDs, including GPIO_LED_BLUE >>> >> >> >> >>> >> >> >> This is the pin on your board used for each LED. >>> >> >> >> >>> >> >> >> Please look at stm32h747i-disco/src/stm32h747i-disco.h for >>> >> >> >> reference. >>> >> >> >> >>> >> >> >> BR, >>> >> >> >> >>> >> >> >> Alan >>> >> >> >> >>> >> >> >> On 8/16/21, rushi ghatkar <rushighatka...@gmail.com> wrote: >>> >> >> >> > Hi Alan sir, >>> >> >> >> > >>> >> >> >> > I have disabled the status/diagnostic LEDs compete for the >>> >> >> >> > use >>> of >>> >> >> LEDs. >>> >> >> >> > So disabled it: >>> >> >> >> > Board Selection ---> >>> >> >> >> > [ ] Board LED Status support >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > Yes my board does support * userleds support*: >>> >> >> >> > boards/arm/stm32h7/nucleo-h743zi2/src/stm32_userleds.c >>> >> >> >> > >>> >> >> >> > But still it gives error, please see the error image attached. >>> >> >> >> > >>> >> >> >> > AR (create): libbinfmt.a binfmt_globals.o >>> >> >> >> > binfmt_initialize.o >>> >> >> >> > binfmt_register.o binfmt_unregister.o binfmt_loadmodule.o >>> >> >> >> > binfmt_unloadmodule.o binfmt_execmodule.o binfmt_exec.o >>> >> >> >> > binfmt_copyargv.o binfmt_dumpmodule.o builtin.o >>> >> >> >> > make[1]: Leaving directory >>> >> '/home/rushikesh/nuttxspace/nuttx/binfmt' >>> >> >> >> > IN: binfmt/libbinfmt.a -> staging/libbinfmt.a >>> >> >> >> > make[1]: Entering directory >>> >> >> >> '/home/rushikesh/nuttxspace/nuttx/arch/arm/src' >>> >> >> >> > make[2]: Entering directory >>> >> >> >> > >>> >> >> >>> '/home/rushikesh/nuttxspace/nuttx/boards/arm/stm32h7/nucleo-h743zi2/src' >>> >> >> >> > CC: stm32_boot.c >>> >> >> >> > CC: stm32_bringup.c >>> >> >> >> > stm32_bringup.c: In function 'stm32_bringup': >>> >> >> >> > stm32_bringup.c:88:9: warning: implicit declaration of >>> >> >> >> > function 'userled_lower_initialize' >>> >> >> >> > [-Wimplicit-function-declaration] >>> >> >> >> > 88 | ret = userled_lower_initialize("/dev/userleds"); >>> >> >> >> > | ^~~~~~~~~~~~~~~~~~~~~~~~ >>> >> >> >> > CC: stm32_userleds.c >>> >> >> >> > stm32_userleds.c:55:3: error: 'GPIO_LED_BLUE' undeclared >>> >> >> >> > here (not in >>> >> >> a >>> >> >> >> > function); did you mean 'GPIO_LED_RED'? >>> >> >> >> > 55 | GPIO_LED_BLUE, >>> >> >> >> > | ^~~~~~~~~~~~~ >>> >> >> >> > | GPIO_LED_RED >>> >> >> >> > make[2]: *** >>> >> >> >> > [/home/rushikesh/nuttxspace/nuttx/boards/Board.mk:103: >>> >> >> >> > stm32_userleds.o] Error 1 >>> >> >> >> > make[2]: Leaving directory >>> >> >> >> > >>> >> >> >>> '/home/rushikesh/nuttxspace/nuttx/boards/arm/stm32h7/nucleo-h743zi2/src' >>> >> >> >> > make[1]: *** [Makefile:152: board/libboard.a] Error 2 >>> >> >> >> > make[1]: Leaving directory >>> >> >> >> '/home/rushikesh/nuttxspace/nuttx/arch/arm/src' >>> >> >> >> > make: *** [tools/Makefile.unix:422: nuttx] Error 2 >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > >>> >> >> >> > Regards, >>> >> >> >> > Rushikesh Ghatkar >>> >> >> >> > >>> >> >> >> > On Mon, Aug 16, 2021 at 4:41 PM Alan Carvalho de Assis < >>> >> >> >> acas...@gmail.com> >>> >> >> >> > wrote: >>> >> >> >> > >>> >> >> >> >> HI Rushikesh, >>> >> >> >> >> >>> >> >> >> >> It seams your board already has the userleds support: >>> >> >> >> >> >>> >> >> >> >> boards/arm/stm32h7/nucleo-h743zi2/src/stm32_userleds.c >>> >> >> >> >> >>> >> >> >> >> Did you disable the CONFIG_ARCH_LEDS? The >>> >> >> >> >> status/diagnostic >>> LEDs >>> >> >> >> >> compete for the use of LEDs. >>> >> >> >> >> >>> >> >> >> >> So disable it: >>> >> >> >> >> >>> >> >> >> >> Board Selection ---> >>> >> >> >> >> [ ] Board LED Status support >>> >> >> >> >> >>> >> >> >> >> BR, >>> >> >> >> >> >>> >> >> >> >> Alan >>> >> >> >> >> >>> >> >> >> >> On 8/16/21, rushi ghatkar <rushighatka...@gmail.com> wrote: >>> >> >> >> >> > Hi, >>> >> >> >> >> > >>> >> >> >> >> > I have tried the built-in LED driver in menuconfig, >>> >> >> >> >> > Application Configuration -> Examples -> LED driver >>> >> >> >> >> > example. >>> >> >> >> >> > But when I run that driver using picocom,it shows >>> >> >> >> >> > error, >>> >> >> >> >> > >>> >> >> >> >> > Builtin Apps: >>> >> >> >> >> > leds sh hello nsh >>> >> >> >> >> > nsh> leds >>> >> >> >> >> > leds_main: Starting the led_daemon >>> >> >> >> >> > leds_main: led_daemon started >>> >> >> >> >> > >>> >> >> >> >> > led_daemon (pid# 3): Running >>> >> >> >> >> > led_daemon: Opening /dev/userleds >>> >> >> >> >> > led_daemon: ERROR: Failed to open /dev/userleds: 2 >>> >> >> >> >> > led_daemon: Terminating >>> >> >> >> >> > nsh> >>> >> >> >> >> > >>> >> >> >> >> > Please find the error image attachment. >>> >> >> >> >> > >>> >> >> >> >> > In menuconfig I have selected, Board Configuration -> >>> >> >> >> >> > Board LED status report. >>> >> >> >> >> > Device Driver -> LED support -> LED driver -> Generic >>> >> >> >> >> > Lower Half >>> >> >> LED >>> >> >> >> >> Driver >>> >> >> >> >> > >>> >> >> >> >> > >>> >> >> >> >> > For this I need to have a board userleds file that will >>> >> >> >> >> > map the >>> >> >> LEDs >>> >> >> >> >> > and >>> >> >> >> >> > will create the /dev/userleds. >>> >> >> >> >> > But I have searched it in the list by using this >>> >> >> >> >> > command *./tools/configure.sh -L | less* There is no >>> >> >> >> >> > *nucleo-h743zi2:userleds* file available. >>> >> >> >> >> > >>> >> >> >> >> > Is there any way to make it *board userled file*, so we >>> >> >> >> >> > can use it? >>> >> >> >> >> > >>> >> >> >> >> > >>> >> >> >> >> > >>> >> >> >> >> > Regards, >>> >> >> >> >> > Rushikesh >>> >> >> >> >> > >>> >> >> >> >> > On Mon, Aug 16, 2021 at 4:19 PM Alan Carvalho de Assis >>> >> >> >> >> > < >>> >> >> >> >> acas...@gmail.com> >>> >> >> >> >> > wrote: >>> >> >> >> >> > >>> >> >> >> >> >> Please ask this question in the mailing list, it could >>> >> >> >> >> >> help other people in the future. >>> >> >> >> >> >> >>> >> >> >> >> >> You need to have a board userleds file that will map >>> >> >> >> >> >> the LEDs and will create the /dev/userleds. >>> >> >> >> >> >> >>> >> >> >> >> >> BR, >>> >> >> >> >> >> >>> >> >> >> >> >> Alan >>> >> >> >> >> >> >>> >> >> >> >> >> On 8/16/21, rushi ghatkar <rushighatka...@gmail.com> >>> >> >> >> >> >> wrote: >>> >> >> >> >> >> > On Mon, Aug 16, 2021 at 2:42 PM rushi ghatkar >>> >> >> >> >> >> > <rushighatka...@gmail.com> >>> >> >> >> >> >> > wrote: >>> >> >> >> >> >> > >>> >> >> >> >> >> >> Hi, >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> I have tried the built-in LED driver in menuconfig, >>> >> >> Application >>> >> >> >> >> >> >> Configuration -> Examples -> LED driver example. >>> >> >> >> >> >> >> But when I run that driver using picocom,it shows >>> >> >> >> >> >> >> error, >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> Builtin Apps: >>> >> >> >> >> >> >> leds sh hello nsh >>> >> >> >> >> >> >> nsh> leds >>> >> >> >> >> >> >> leds_main: Starting the led_daemon >>> >> >> >> >> >> >> leds_main: led_daemon started >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> led_daemon (pid# 3): Running >>> >> >> >> >> >> >> led_daemon: Opening /dev/userleds >>> >> >> >> >> >> >> led_daemon: ERROR: Failed to open /dev/userleds: 2 >>> >> >> >> >> >> >> led_daemon: Terminating >>> >> >> >> >> >> >> nsh> >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> Please find the error image attachment. >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> In menuconfig I have selected, Board Configuration >>> >> >> >> >> >> >> -> Board LED status report. >>> >> >> >> >> >> >> Device Driver -> LED support -> LED driver -> >>> >> >> >> >> >> >> Generic Lower >>> >> >> Half >>> >> >> >> >> >> >> LED >>> >> >> >> >> >> >> Driver >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> Why is it still showing the error? >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> Regards, >>> >> >> >> >> >> >> Rushikesh >>> >> >> >> >> >> >> >>> >> >> >> >> >> >> On Fri, Aug 13, 2021 at 5:57 PM rushi ghatkar >>> >> >> >> >> >> >> <rushighatka...@gmail.com >>> >> >> >> >> >> > >>> >> >> >> >> >> >> wrote: >>> >> >> >> >> >> >> >>> >> >> >> >> >> >>> Hi Alan sir, >>> >> >> >> >> >> >>> >>> >> >> >> >> >> >>> Thank you for the clarification. >>> >> >> >> >> >> >>> >>> >> >> >> >> >> >>> >>> >> >> >> >> >> >>> Regards, >>> >> >> >> >> >> >>> Rushikesh >>> >> >> >> >> >> >>> >>> >> >> >> >> >> >>> >>> >> >> >> >> >> >>> >>> >> >> >> >> >> >>> On Fri, Aug 13, 2021 at 5:34 PM Alan Carvalho de >>> >> >> >> >> >> >>> Assis <acas...@gmail.com> >>> >> >> >> >> >> >>> wrote: >>> >> >> >> >> >> >>> >>> >> >> >> >> >> >>>> What do you mean by "try to make driver into app" ? >>> >> >> >> >> >> >>>> >>> >> >> >> >> >> >>>> Drivers need to be created on nuttx/drivers, not >>> >> >> >> >> >> >>>> at apps/. >>> >> >> >> >> >> >>>> Also >>> >> >> >> >> >> >>>> you >>> >> >> >> >> >> >>>> cannot call a driver function directly from >>> >> >> >> >> >> >>>> apps/, it >>> is >>> >> >> >> >> >> >>>> a >>> >> >> >> >> violation >>> >> >> >> >> >> >>>> of the OS abstraction. >>> >> >> >> >> >> >>>> >>> >> >> >> >> >> >>>> Your application needs to open the >>> >> >> >> >> >> >>>> /dev/yourdriver to read/write from/to your >>> >> >> >> >> >> >>>> driver. >>> >> >> >> >> >> >>>> >>> >> >> >> >> >> >>>> BR, >>> >> >> >> >> >> >>>> >>> >> >> >> >> >> >>>> Alan >>> >> >> >> >> >> >>>> >>> >> >> >> >> >> >>>> On 8/13/21, rushi ghatkar >>> >> >> >> >> >> >>>> <rushighatka...@gmail.com> >>> >> wrote: >>> >> >> >> >> >> >>>> > Hi @Alan & @Frank sir, >>> >> >> >> >> >> >>>> > >>> >> >> >> >> >> >>>> > I was also thinking the same, first check for >>> >> >> >> >> >> >>>> > the >>> >> drivers >>> >> >> >> >> >> >>>> > I >>> >> >> >> >> >> >>>> > need >>> >> >> >> >> >> >>>> > and >>> >> >> >> >> >> >>>> then >>> >> >> >> >> >> >>>> > copy it and the change as per my needs. >>> >> >> >> >> >> >>>> > Then change Makefiles, Make.defs, and Kconfigs >>> files >>> >> to >>> >> >> >> >> >> >>>> > make >>> >> >> >> >> the >>> >> >> >> >> >> >>>> driver >>> >> >> >> >> >> >>>> > include. >>> >> >> >> >> >> >>>> > Then make them an app to run on picocom. >>> >> >> >> >> >> >>>> > >>> >> >> >> >> >> >>>> > Will try to change driver as per need and try >>> >> >> >> >> >> >>>> > to make >>> >> >> driver >>> >> >> >> >> >> >>>> > into >>> >> >> >> >> >> app >>> >> >> >> >> >> >>>> to >>> >> >> >> >> >> >>>> > get it run on picocom. >>> >> >> >> >> >> >>>> > >>> >> >> >> >> >> >>>> > Thanks for the information. >>> >> >> >> >> >> >>>> > >>> >> >> >> >> >> >>>> > >>> >> >> >> >> >> >>>> > Thanks & Regards, Rushikesh Ghatkar >>> >> >> >> >> >> >>>> > >>> >> >> >> >> >> >>>> > On Fri, Aug 13, 2021 at 5:11 PM Frank-Christian >>> >> >> >> >> >> >>>> > Kruegel >>> >> < >>> >> >> >> >> >> >>>> nu...@istda.com> >>> >> >> >> >> >> >>>> > wrote: >>> >> >> >> >> >> >>>> > >>> >> >> >> >> >> >>>> >> Am 13.08.2021 um 10:43 schrieb rushi ghatkar: >>> >> >> >> >> >> >>>> >> > Hi, >>> >> >> >> >> >> >>>> >> > >>> >> >> >> >> >> >>>> >> > I have configured and installed Nuttx rtos >>> >> >> >> >> >> >>>> >> > on the >>> >> >> >> >> >> >>>> >> > Nucleo-H743zi2 >>> >> >> >> >> >> >>>> board. >>> >> >> >> >> >> >>>> >> > >>> >> >> >> >> >> >>>> >> > Now I want to create my own driver. How to >>> >> >> >> >> >> >>>> >> > create our >>> >> >> own >>> >> >> >> >> >> >>>> >> > driver? >>> >> >> >> >> >> >>>> >> > >>> >> >> >> >> >> >>>> >> > Has anyone created their own driver using >>> >> >> >> >> >> >>>> >> > Nuttx rtos on the >>> >> >> >> >> >> >>>> >> > STM32 >>> >> >> >> >> >> >>>> >> > board? >>> >> >> >> >> >> >>>> >> > >>> >> >> >> >> >> >>>> >> > Could anybody please tell me how to start? >>> >> >> >> >> >> >>>> >> >>> >> >> >> >> >> >>>> >> Been there, done that. >>> >> >> >> >> >> >>>> >> >>> >> >> >> >> >> >>>> >> The best starting point is to look for a >>> >> >> >> >> >> >>>> >> similar >>> >> driver. >>> >> >> >> >> >> >>>> >> I >>> >> >> >> >> needed >>> >> >> >> >> >> >>>> >> drivers for ADC and DAC chips with I2C >>> >> >> >> >> >> >>>> >> interface, so I looked >>> >> >> >> >> for >>> >> >> >> >> >> >>>> those >>> >> >> >> >> >> >>>> >> drivers, copied one and changed it according >>> >> >> >> >> >> >>>> >> to my needs. >>> >> >> >> Then >>> >> >> >> >> >> >>>> >> I >>> >> >> >> >> >> >>>> looked >>> >> >> >> >> >> >>>> >> into Makefiles, Make.defs, and Kconfigs, how >>> >> >> >> >> >> >>>> >> these drivers were >>> >> >> >> >> >> >>>> included >>> >> >> >> >> >> >>>> >> an included mine in the same manner. >>> >> >> >> >> >> >>>> >> >>> >> >> >> >> >> >>>> >> The build system with make menuconfig, >>> >> >> >> >> >> >>>> >> Makefiles and Kconfigs is >>> >> >> >> >> >> the >>> >> >> >> >> >> >>>> >> same as for the Linux kernel. Since your >>> >> >> >> >> >> >>>> >> development platform is Linux anyways (this is >>> >> >> >> >> >> >>>> >> the strongly recommended default >>> >> >> platform) >>> >> >> >> >> >> >>>> >> you >>> >> >> >> >> >> >>>> >> should >>> >> >> >> >> >> >>>> >> already have plenty of Linux experience and >>> >> >> >> >> >> >>>> >> know how to >>> >> >> >> >> customize >>> >> >> >> >> >> an >>> >> >> >> >> >> >>>> >> Linux kernel, how to use Makefiles and gcc and >>> >> >> >> >> >> >>>> >> gdb and binutils. >>> >> >> >> >> >> >>>> >> If >>> >> >> >> >> >> >>>> you >>> >> >> >> >> >> >>>> >> know Linux well the step to NuttX is not so >>> >> >> >> >> >> >>>> >> big any more. >>> >> >> >> >> >> >>>> >> >>> >> >> >> >> >> >>>> >> I started a year ago, and it took me two >>> >> >> >> >> >> >>>> >> months to get >>> >> >> >> started >>> >> >> >> >> >> >>>> >> with >>> >> >> >> >> >> >>>> own >>> >> >> >> >> >> >>>> >> hardware and own drivers (ok, with Linux >>> >> >> >> >> >> >>>> >> experience since >>> >> >> >> 1993 >>> >> >> >> >> >> >>>> >> and >>> >> >> >> >> >> >>>> UNIX >>> >> >> >> >> >> >>>> >> experience since 1989). >>> >> >> >> >> >> >>>> >> >>> >> >> >> >> >> >>>> >> >>> >> >> >> >> >> >>>> >> Frank-Christian >>> >> >> >> >> >> >>>> >> >>> >> >> >> >> >> >>>> > >>> >> >> >> >> >> >>>> >>> >> >> >> >> >> >>> >>> >> >> >> >> >> > >>> >> >> >> >> >> >>> >> >> >> >> > >>> >> >> >> >> >>> >> >> >> > >>> >> >> >> >>> >> >> > >>> >> >> >>> >> > >>> >> >>> > >>> >>