Hello all,

Tiago,

I have a question regarding the porting process. Specifically, I need to
add the sleep_modes.c file to the compilation process. Am I on the right
path with this approach?

To achieve this, I modified the hal_esp32c6.mk file by adding sleep_modes.c.
However, I am facing some issues: within sleep_modes.c, some #include
statements reference files that are not available in the 3rd-party
directory but are only present in the IDF. For example:

   - esp_private/pm_impl.h
   - esp_cpu.h
   - components/esp_driver_gpio/include/rtc_io.h

I need those includes because sleep_modes.c uses function from there.

Could you please advise if it's possible to incorporate these IDF folders
into the 3rd-party directory, or if that approach is not recommended?

Thank you for your assistance.

Best regards,

Em qua., 23 de out. de 2024 às 15:21, Tiago Medicci Serrano <
tiago.medi...@gmail.com> escreveu:

> Hi,
>
> Just another note to guide your development: we don't develop anything on
> `esp-hal-3rdparty`: most of the code we use from it is derived from the
> path
>
> https://github.com/espressif/esp-hal-3rdparty/tree/release/v5.1.c/components/hal
> (essentially, header files from `components/hal/<chip>/include/hal`, except
> for some of the sources files that use the hal functions at
> `components/hal` to implement some function we may use). You can take a
> look at the branch `
> https://github.com/espressif/esp-hal-3rdparty/commits/release/v5.1.c`
> <https://github.com/espressif/esp-hal-3rdparty/commits/release/v5.1.c> and
> especially the commits beginning
> with faaa46ebfb37fba4250de831efbbf2862958c344 to check the kind of changes
> we do in hal. Essentially, we create a wrapper layer to make it independent
> of the host OS.
>
> *Drivers must always be implemented on NuttX!*
>
> That being said, you can either 1) try to adapt the implementation of other
> devices to use the HAL functions or 2) get some inspiration on how IDF
> implements PM. I'd stick with the 2nd option before simply trying to adapt
> an existing implementation (from ESP32-C3 legacy or from ESP32/ESP32-S3).
>
> Best regards,
>
> Em qua., 23 de out. de 2024 às 13:35, Felipe Moura Oliveira <
> moura....@gmail.com> escreveu:
>
> > Hello Tiago.
> >
> > Thank you for clarification, I will follow your instructions.
> >
> > Em qua., 23 de out. de 2024 às 13:01, Tiago Medicci Serrano <
> > tiago.medi...@gmail.com> escreveu:
> >
> > > Hi Felipe,
> > >
> > > Just complementing: use your forked version of the HAL during the
> > > development. As soon as you have a working version, you can submit on
> the
> > > official repository.
> > >
> > > Best regards,
> > >
> > > Em qua., 23 de out. de 2024 às 12:58, Tiago Medicci Serrano <
> > > tiago.medi...@gmail.com> escreveu:
> > >
> > > > Hi Felipe,
> > > >
> > > > Thanks for asking! You should follow the path using the functions on
> > > > esp-hal-3rdparty. You can fork the repository and use
> > > > `ESP_HAL_3RDPARTY_VERSION=b4c723a119344b4b71d69819019d55637fb570fd
> > > > ESP_HAL_3RDPARTY_URL="g...@github.com:tmedicci/esp-hal-3rdparty.git"`
> > env
> > > > vars (globally or before the make command) to use your version of the
> > > HAL.
> > > >
> > > > I just wanted to share some thoughts: using the HAL enables us to
> make
> > > the
> > > > feature available for all the Espressif devices (please don't bother
> > with
> > > > that now, as soon as you submit it, we can test for the other devices
> > and
> > > > eventually make any adjustments). Although it's possible to
> reimplement
> > > > these functions on NuttX, we don't recommend that because of the
> first
> > > > statement (the ability to use for the other devices): in that case we
> > > > wouldn't be able to support the feature. You can take a look on IDF
> for
> > > > some inspiration on how it's implemented.
> > > >
> > > > Please let me know if you have any questions.
> > > >
> > > > Best regards,
> > > >
> > > > Em qua., 23 de out. de 2024 às 12:38, Felipe Moura Oliveira <
> > > > moura....@gmail.com> escreveu:
> > > >
> > > >> Hello everyone,
> > > >>
> > > >> Our project has reached a point where we need the Power Manager
> > > >> functionality, which is not yet available in the ESP32C6. I am
> > studying
> > > to
> > > >> start the implementation, but I am confused about the correct way to
> > > >> approach this.
> > > >>
> > > >> There is a Power Manager implementation for the ESP32C3, but it
> seems
> > to
> > > >> follow the legacy methodology. In fact, the file esp32c3_idle.c is
> > > located
> > > >> in the path arch/risc-v/src/esp32c3-legacy. In this methodology,
> > > functions
> > > >> are re-implemented from the Espressif driver. For example, the
> > function
> > > >> esp32c3_light_sleep_start(), which is currently available in
> > > >> esp32c6/esp-hal-3rdparty/.../sleep_modes.c.
> > > >>
> > > >> I tried using the implementations from esp-hal-3rdparty to develop
> the
> > > >> Power Manager for the ESP32C6 in NuttX, but the files still have
> many
> > > >> dependencies on items that are not present in NuttX.
> > > >>
> > > >> My question is: Should I try to make the Power Manager work using
> the
> > > >> functions in esp-hal-3rdparty, even if it requires making changes to
> > the
> > > >> 3rd-party code? Or should I re-implement the functions within NuttX,
> > > even
> > > >> if, in this case, there are functions with the same scope and
> > > >> implementation in different files, where one is compiled, and the
> > other
> > > is
> > > >> not?
> > > >>
> > > >>
> > > >> --
> > > >> *Felipe Moura de Oliveira*
> > > >> *Universidade Federal de Minas Gerais*
> > > >> Linkedin <https://www.linkedin.com/in/felipe-oliveira-75a651a0>
> > > >> <https://twitter.com/FelipeMOliveir?lang=pt-br>
> > > >>
> > > >
> > > >
> > > > --
> > > > Tiago Medicci Serrano
> > > >
> > > > Embedded Software Engineer
> > > > MSc Electronics/Microelectronics
> > > > m: +55 (19) 981403886 <+55+(19)+981403886>
> > > > e: tiago.medi...@gmail.com
> > > > a: Campinas, Brazil
> > > > Follow me:
> > > > <https://www.linkedin.com/in/tiago-serrano-924458b6>
> > > > <https://github.com/tmedicci>
> > > >
> > >
> > >
> > > --
> > > Tiago Medicci Serrano
> > >
> > > Embedded Software Engineer
> > > MSc Electronics/Microelectronics
> > > m: +55 (19) 981403886 <+55+(19)+981403886>
> > > e: tiago.medi...@gmail.com
> > > a: Campinas, Brazil
> > > Follow me:
> > > <https://www.linkedin.com/in/tiago-serrano-924458b6>
> > > <https://github.com/tmedicci>
> > >
> >
> >
> > --
> > *Felipe Moura de Oliveira*
> > *Universidade Federal de Minas Gerais*
> > Linkedin <https://www.linkedin.com/in/felipe-oliveira-75a651a0>
> > <https://twitter.com/FelipeMOliveir?lang=pt-br>
> >
>
>
> --
> Tiago Medicci Serrano
>
> Embedded Software Engineer
> MSc Electronics/Microelectronics
> m: +55 (19) 981403886 <+55+(19)+981403886>
> e: tiago.medi...@gmail.com
> a: Campinas, Brazil
> Follow me:
> <https://www.linkedin.com/in/tiago-serrano-924458b6>
> <https://github.com/tmedicci>
>


-- 
*Felipe Moura de Oliveira*
*Universidade Federal de Minas Gerais*
Linkedin <https://www.linkedin.com/in/felipe-oliveira-75a651a0>
<https://twitter.com/FelipeMOliveir?lang=pt-br>

Reply via email to