Commit Graph

119 Commits

Author SHA1 Message Date
Guillaume Souchere
ada38e8d5e fix(linenoise): Skip 0x00 to 0x1F character in dump mode
Skipping through the non printable character assures that
in dumb mode, any special keys will not lead to the cursor
movement.
2024-04-17 13:13:58 +02:00
Guillaume Souchere
aa61062584 fix(console): bug where backspace erases the prompt in dumb mode 2024-04-17 12:03:42 +02:00
David Cermak
bd8b1eca9e fix(console): Fix linux target build on MacOS
We're correctly checking for the CONFIG_IDF_TARGET_LINUX macro, but before including sdkconfig.h
2024-04-02 15:14:19 +02:00
Alon Bar-Lev
93706028de
change(console): drop the use of open_memstream()
the argtable3 provides string based output return, there is no need to go via
stdio structures.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
Signed-off-by: Ivan Grokhotkov <ivan@espressif.com>
Closes https://github.com/espressif/esp-idf/pull/12507
2024-03-28 14:09:01 +01:00
Jakob Hasse
0b246b8c0b refactor(console): made help command sorting depend on Kconfig option 2024-03-21 16:33:44 +08:00
Jakob Hasse
f482a9153a Merge branch 'fix/add_libbsd_string_h' into 'master'
refactor(linux): Unified libbsd handling

See merge request espressif/esp-idf!29457
2024-03-21 10:11:25 +08:00
sonika.rathi
e162903615 fix(esp_vfs_console): add esp_vfs_console component
move vfs_console related init steps from vfs component to new esp_vfs_console component
2024-03-11 10:18:10 +01:00
Jakob Hasse
4d629be602 refactor(linux): Unified libbsd handling
* Users can now use libbsd string.h and sys/cdefs.h functionality
  (e.g., strlcpy, containerof) on Linux by just including
  string.h or sys/cdefs.h. In other words, the includes are the same
  on the Linux target as well as on chips targets (ESP32, etc.).
* libbsd linking is done by the linux component (belongs to common
  components) now instead of handling it separately in each component
2024-03-08 12:26:54 +08:00
Jakob Hasse
f9c9e18bca fix(linux): prevent build error on MacOS and optimize buffer usage on Linux 2024-03-01 11:01:15 +08:00
Darian Leung
4e4278477d
fix(console): Fix build issues when CONFIG_ESP_CONSOLE_NONE is enabled
This commit fixes the following build issues when CONFIG_ESP_CONSOLE_NONE is
enabled:

- vfs_console.c will attempt to register a VFS entry for STDIO console even if
CONFIG_ESP_CONSOLE_NONE is enabled. This results in "undeclared `primary_path`"
error.
- esp_console_repl_chpi.c does not use "TAG" when CONFIG_ESP_CONSOLE_NONE is
enabled, leading to a "defined by not used" warning.

Closes https://github.com/espressif/esp-idf/issues/12984
2024-02-28 20:28:27 +08:00
Jakob Hasse
a30546cd24 feat(console): Refactored code to support Linux target 2024-01-29 17:13:22 +08:00
Jakob Hasse
db33f5a52e Merge branch 'fix/console_context_setting' into 'master'
fix(console): Made setting command context less error-prone and clearer

See merge request espressif/esp-idf!28395
2024-01-23 13:25:25 +08:00
Sudeep Mohanty
0313cbca43 fix(console): Fixed linenoise prompt length calculation
This commit fixes a potential issue where in the prompt length used
for the linenoise based console could be calculated as a negative
integer, leading to a console hang.

Closes https://github.com/espressif/esp-idf/issues/4924
2024-01-16 11:52:24 +01:00
Jakob Hasse
6031b35803 fix(console): Made setting command context less error-prone and clearer 2024-01-11 10:53:43 +08:00
Cao Sen Miao
3dc76e9360 refactor(usb_serial_jtag): make usb_serial_jtag as component 2024-01-05 19:42:04 +08:00
Marius Vikhammer
4f1570e904 Merge branch 'ci/fix_qemu_intr_tests' into 'master'
ci: fix flakey intr_dump tests in QEMU

Closes IDF-8899

See merge request espressif/esp-idf!27983
2023-12-21 10:25:06 +08:00
Marius Vikhammer
0e2bd068be feat(console): added config option for console task affinity 2023-12-19 10:35:14 +08:00
Song Ruo Jing
bc09031496 refactor(uart_vfs): Move uart implementation of vfs to esp_driver_uart
Deprecated esp_vfs_dev_uart_xxx APIs
vfs_uart test case moved to esp_driver_uart test_apps
Astyle fixed for uart_vfs
2023-12-15 17:14:55 +08:00
Song Ruo Jing
6ad80f0332 refactor(uart): make uart driver as component, and fix astyle 2023-12-15 17:03:51 +08:00
Alon Bar-Lev
bccb2873bd feat(console): add command user context support
Current implementation implicitly forces the developer to use global variables
to enter its context during the command invocation, this change enables each
module to register a context for command to find without the need to manage
global variables.

No API breakage.

Fields added:
   esp_console_cmd_t::func_w_context    - (*)(int argc, char **argv, void *context)

Functions added:
   esp_err_t esp_console_cmd_set_context(const char *cmd, void *context)

Usage:

   esp_console_cmd_register(&cmd));
   esp_console_cmd_set_context(cmd.command, (void *)"context"));

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
2023-12-13 10:27:04 +08:00
Jakob Hasse
dad563cfaf change(console): changed unit tests according to sorted help
Merges https://github.com/espressif/esp-idf/pull/12525
2023-11-14 11:33:45 +08:00
Alon Bar-Lev
07a9137fd7 change(console): print sorted help
console commands may be registered in random order in application, for example
each module registers its own commands.

the output of help is displayed to human, best to have consistent sorted
output so that the implementation ordering will not affect the output and
allow the user to see a list in some logic order.

Signed-off-by: Alon Bar-Lev <alon.barlev@gmail.com>
2023-11-09 10:18:42 +02:00
Jakob Hasse
548022fbe6 refactor(linux): excluded all non-Linux components from build
* All components which won't build (yet) on Linux are excluded.
  This enables switching to Linux in an application without
  explicitly setting COMPONENTS to main in the main
  CMakeLists.txt.
* ESP Timer provides headers for Linux now
* automatically disabling LWIP in Kconfig if it is not available

doc(linux): brought section
  "Component Linux/Mock Support Overview" up to date
2023-10-16 17:06:54 +08:00
Marius Vikhammer
d27dd4d9cb Merge branch 'docs/show_include_path' into 'master'
docs: show include path and require component as part of API header

Closes IDF-3134, DOC-1032, and DOC-3629

See merge request espressif/esp-idf!25092
2023-10-11 09:36:14 +08:00
Alexey Lapshin
73742dcdaa fix(console): fix linenoise flushing in dumb mode 2023-10-09 12:13:02 +04:00
Marius Vikhammer
ebe68c3ee3 docs(build): add header include path and component require to api reference 2023-10-07 11:47:45 +08:00
Armando
7dbd3f6909 feat(ci): Enable p4 example, test_apps and unit tests CI build 2023-08-24 12:51:19 +08:00
Jakob Hasse
7b258bef0e refactor(esp_console): improved error handling, added tests and docs
* Updated documentation of
  esp_console_register_help_command
* Improved help command error handling
* Added test for the help command
2023-08-15 14:11:30 +08:00
Josef Norgan
f317cc55f2 feat(esp_console): Added Help command parameter for displaying only specific command 2023-08-15 10:09:37 +08:00
Marius Vikhammer
f80430911f fix(console): fixed esp_console_init not working if heap_alloc_caps was 0 2023-08-10 10:35:32 +08:00
Marius Vikhammer
54f327a380 Merge branch 'contrib/github_pr_11562' into 'master'
[Console] add setting to use PSRAM (GitHub PR)

Closes IDFGH-10303

See merge request espressif/esp-idf!25136
2023-08-08 09:34:47 +08:00
Marius Vikhammer
1ec1a69ed0 feature(console): updated console alloc config to use static config struct
No need to store the config in a separate variable, can re-use the config struct
2023-08-03 10:19:15 +08:00
Chip Weinberger
9178748ff3 [Console] add heap caps settings 2023-08-01 23:38:47 -07:00
Marius Vikhammer
91aaf8b1a0 ci(qemu): temporarily allow qemu tests to fail 2023-07-13 11:16:38 +08:00
Zim Kalinowski
8fe961b3ff console: enable qemu tests 2023-06-20 09:37:39 +02:00
Zim Kalinowski
4ba38c2105 Merge branch 'fix/console-build-error' into 'master'
console: Fix building issue when serial JTAG is set

Closes IDFGH-9327

See merge request espressif/esp-idf!23311
2023-05-04 20:15:42 +08:00
Guillaume Souchere
c84f0b25ac console: Fix building issue when serial JTAG is set
Closes https://github.com/espressif/esp-idf/issues/10707
2023-04-27 15:28:23 +08:00
Marius Vikhammer
1a5e47bd07 ci: fixed test apps overriding pytest configs 2023-04-26 11:07:35 +08:00
Roland Dobai
1bf382a3e1 Merge branch 'monitor_win_color' into 'master'
bug(idf_monitor, hints): fix monitor colors on windows with hints

Closes IDF-5863

See merge request espressif/esp-idf!22070
2023-04-21 20:15:38 +08:00
Peter Dragun
bebd2cec4a bug(idf_monitor): fix color on windows with hints
Closes https://github.com/espressif/esp-idf/issues/9610
2023-04-17 11:18:42 +02:00
Ivan Grokhotkov
141b7356fb
console: minor fixes
- wrong comment
- duplicated setvbuf
2023-04-12 11:07:55 +02:00
Marius Vikhammer
0752227868 console: add running repl test in CI 2023-04-07 07:12:23 +00:00
Zim Kalinowski
2a8bbda6e4 console: Fix and re-enable no-format warnings 2023-03-06 14:12:31 +01:00
Marius Vikhammer
25abc7f6d8 ci: update idf-core related tests for C6 2023-02-13 13:01:57 +08:00
Cao Sen Miao
94120b82c2 esp32h2: add build test 2023-01-17 10:29:04 +08:00
Song Ruo Jing
be0fdfa176 soc: Add a soc cap, SOC_CLK_RC_FAST_D256_SUPPORTED, for whether the target has the RC_FAST_D256 clock 2022-11-01 11:23:26 +08:00
Ivan Grokhotkov
47ba2b48ea
console: argtable3: upgrade to v3.2.2
Closes https://github.com/espressif/esp-idf/issues/9907
Closes https://github.com/espressif/esp-idf/pull/10016
2022-10-27 11:38:49 +02:00
Zim Kalinowski
c37ccfb84e console: migrate console tests to pytest 2022-09-26 12:02:38 +02:00
Ivan Grokhotkov
5b88c6b142
console: pass esp_console_repl_universal_t pointer to the repl task
For usb_serial_jtag REPL only, xTaskCreate was passing a pointer to
esp_console_repl_com_t, while esp_console_repl_task was expecting
a pointer to esp_console_repl_universal_t.

The way the two structures are defined, this makes no difference, and
the pointer values are the same. Still, this could potentially break
in the future.

(I am not sure what is the distinction between repl_com (common?) and
repl_universal; it seems that `int uart_channel` could just as well
be part of esp_console_repl_com_t; alternatively, as suggested in the
previous commit, this structure could contain a callback function
pointer, which would allow `esp_console_new_repl_*` functions to
specify how stdin/stdout should be initialized by the REPL task.)
2022-08-30 19:37:15 +02:00
Ivan Grokhotkov
c1d5717013
console: fix a crash when initializing usb_serial_jtag console
The crash occurred when calling setvbuf(stdin,...) with stdin==NULL.
This happened because esp_console_repl_task started running before
its args->uart_channel was initialized; then esp_console_repl_task
went into the code path 'uart_channel != CONFIG_ESP_CONSOLE_UART_NUM',
and tried to 'fopen("/dev/uart/0");`
Since the UART VFS is not registered when ESP_CONSOLE_USB_SERIAL_JTAG
option is enabled, fopen failed and 'stdin' was NULL.
Fix by moving the initialization of repl task arguments before the
start of the task, same as it is done for the usb_cdcacm case.

The crash started happening after the commit 287ab7566b. I haven’t
verified this, but I guess the reason why it wasn’t happening before
was that xTaskCreate was not correctly yielding to the newly created
higher-priority 'repl' task, therefore the code which was setting
the repl task arguments after xTaskCreate had time to execute.

It should be noted that the 'uart_channel' argument is a bit hacky,
in the first place. The code should be refactored to pass a callback
function to the repl task, and let this callback initialize stdin and
stdout based on the chosen console channel. Then esp_console_repl_task
does not require assumptions about the specific interface used.

Closes https://github.com/espressif/esp-idf/issues/9662
2022-08-30 19:16:51 +02:00