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>