Forum Replies Created
-
AuthorPosts
-
support
KeymasterHi,
Thanks, we have rechecked this. The ESP32 Bluetooth LE support requires some extra macros to be set in your project configuration file. Please replace your sdkconfig.h file with the following one:
/* * * Automatically generated file; DO NOT EDIT. * Espressif IoT Development Framework Configuration * */ #define CONFIG_TRACEMEM_RESERVE_DRAM 0x0 #define CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE 1 #define CONFIG_MEMMAP_BT 1 #define CONFIG_SECURE_BOOTLOADER_DISABLED 1 #define CONFIG_ESPTOOLPY_FLASHFREQ "40m" #define CONFIG_NEWLIB_STDOUT_ADDCR 1 #define CONFIG_TASK_WDT_CHECK_IDLE_TASK 1 #define CONFIG_ESPTOOLPY_FLASHSIZE "2MB" #define CONFIG_INT_WDT 1 #define CONFIG_ESPTOOLPY_FLASHFREQ_40M 1 #define CONFIG_ESPTOOLPY_FLASHSIZE_2MB 1 #define CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS 1 #define CONFIG_LOG_DEFAULT_LEVEL_INFO 1 #define CONFIG_BT_RESERVE_DRAM 0x10000 #define CONFIG_ESP32_PANIC_PRINT_REBOOT 1 #define CONFIG_LWIP_MAX_SOCKETS 4 #define CONFIG_ESP32_ENABLE_STACK_BT 1 #define CONFIG_ULP_COPROC_RESERVE_MEM 0 #define CONFIG_ESPTOOLPY_BAUD 115200 #define CONFIG_INT_WDT_CHECK_CPU1 1 #define CONFIG_TOOLPREFIX "xtensa-esp32-elf-" #define CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC 1 #define CONFIG_ESPTOOLPY_BAUD_115200B 1 #define CONFIG_LWIP_THREAD_LOCAL_STORAGE_INDEX 0 #define CONFIG_MBEDTLS_SSL_MAX_CONTENT_LEN 16384 #define CONFIG_LOG_BOOTLOADER_LEVEL_WARN 1 #define CONFIG_TASK_WDT 1 #define CONFIG_MAIN_TASK_STACK_SIZE 4096 #define CONFIG_TASK_WDT_TIMEOUT_S 5 #define CONFIG_INT_WDT_TIMEOUT_MS 300 #define CONFIG_ESPTOOLPY_FLASHMODE "dio" #define CONFIG_LOG_DEFAULT_LEVEL 3 #define CONFIG_FREERTOS_ASSERT_ON_UNTESTED_FUNCTION 1 #define CONFIG_ESPTOOLPY_FLASHMODE_DIO 1 #define CONFIG_PYTHON "python" #define CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1 1 #define CONFIG_ESPTOOLPY_COMPRESSED 1 #define CONFIG_PARTITION_TABLE_FILENAME "partitions_singleapp.csv" #define CONFIG_LWIP_DHCP_MAX_NTP_SERVERS 1 #define CONFIG_PARTITION_TABLE_SINGLE_APP 1 #define CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE 2048 #define CONFIG_PARTITION_TABLE_CUSTOM_APP_BIN_OFFSET 0x10000 #define CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1 1 #define CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ 240 #define CONFIG_FREERTOS_HZ 100 #define CONFIG_LOG_COLORS 1 #define CONFIG_FREERTOS_ASSERT_FAIL_ABORT 1 #define CONFIG_LOG_BOOTLOADER_LEVEL 2 #define CONFIG_ESPTOOLPY_BAUD_OTHER_VAL 115200 #define CONFIG_ESP32_DEFAULT_CPU_FREQ_240 1 #define CONFIG_ESP32_DEBUG_OCDAWARE 1 #define CONFIG_FREERTOS_BREAK_ON_SCHEDULER_START_JTAG 1 #define CONFIG_BT_ENABLED 1 #define CONFIG_FREERTOS_CORETIMER_0 1 #define CONFIG_PARTITION_TABLE_CUSTOM_FILENAME "partitions.csv" #define CONFIG_FREERTOS_ISR_STACKSIZE 1536 #define CONFIG_OPTIMIZATION_LEVEL_DEBUG 1 #define CONFIG_SYSTEM_EVENT_QUEUE_SIZE 32 #define CONFIG_APP_OFFSET 0x10000 #define CONFIG_MEMMAP_SMP 1 #define CONFIG_ESPTOOLPY_PORT "/dev/ttyUSB0"
Then please use the following linker script to link your Bluetooth LE code:
MEMORY { /* All these values assume the flash cache is on, and have the blocks this uses subtracted from the length of the various regions. The 'data access port' dram/drom regions map to the same iram/irom regions but are connected to the data port of the CPU and eg allow bytewise access. */ /* IRAM for PRO cpu. Not sure if happy with this, this is MMU area... */ iram0_0_seg (RX) : org = 0x40080000, len = 0x20000 /* Even though the segment name is iram, it is actually mapped to flash */ iram0_2_seg (RX) : org = 0x400D0018, len = 0x330000 /* Shared data RAM, excluding memory reserved for ROM bss/data/stack. Enabling Bluetooth & Trace Memory features in menuconfig will decrease the amount of RAM available. */ dram0_0_seg (RW) : org = 0x3FFB0000 + 0x10000, len = 0x50000 - 0x0 - 0x10000 /* Flash mapped constant data */ drom0_0_seg (R) : org = 0x3F400010, len = 0x800000 /* RTC fast memory (executable). Persists over deep sleep. */ rtc_iram_seg(RWX) : org = 0x400C0000, len = 0x2000 /* RTC slow memory (data accessible). Persists over deep sleep. Start of RTC slow memory is reserved for ULP co-processor code + data, if enabled. */ rtc_slow_seg(RW) : org = 0x50000000 + 0, len = 0x1000 - 0 } /* Heap ends at top of dram0_0_seg */ _heap_end = 0x40000000 - 0x0; INCLUDE esp32.common.ld INCLUDE esp32.rom.ld INCLUDE esp32.peripherals.ld
support
KeymasterHi,
Sorry, GNU tools like GDB are often unreliable and some versions may simply be not compatible with certain OS versions. If the version 7.12 does not work, the only advice we can give is to revert back to v7.10. As long as you are using the new method to run gdb directly on the target, both 7.10 and 7.12 should work.
support
KeymasterHi,
Thanks for posting this, it looks like our bug. We could not reproduce it on our side though.
Could you please check if modifying our version of the linker script to align the fs_data contents also helps?
.data : AT(_sidata) { . = ALIGN(4); _sdata = .; PROVIDE(__data_start__ = _sdata); *(.data) *(.data*) . = ALIGN(4); #<=================== Insert this line PROVIDE(__start_fs_data = .); KEEP(*(.fs_data))</strong> PROVIDE(__stop_fs_data = .); . = ALIGN(4); _edata = .; PROVIDE(__data_end__ = _edata); } > SRAM
If yes, we will release a hotfix for the BSP.
support
KeymasterHi,
Sorry, looks like the virtual terminal mechanism used by VisualGDB to redirect the program output is broken on your Linux distro:
&”/dev/pts/18: No such file or directory.\n”
The only workaround we could suggest is to explicitly forward the program output to a file:
- Create an empty file on the Linux machine (e.g. /tmp/output) by running the following command on Linux via SmarTTY: echo > /tmp/output
- Add the following command to the GDB commands after selecting a target (Additional GDB Commands page): tty /tmp/output
Note that you will not see the program output in real time then as it will be forwarded to a file.
support
KeymasterHi,
Please refer to the screenshot below (this corresponds to the Debug Settings page of VisualGDB Project Properties):
You only need to set those for the executable project.
support
KeymasterHi,
Sorry, looks like you are still using the gdbserver. Otherwise the ‘Remote communication error.’ message will not be shown.
Please try selecting the direct mode manually:
- Start gdb in the following mode: Custom mode
- GDB launch command: gdb –interpreter mi –args “$(TargetPath)”
- Use a gdbserver: no
- Target selection command: (empty)
- Debugging start mode: use “run” command
November 30, 2016 at 23:22 in reply to: New define: $$com.sysprogs.bspoptions.stm32.hal_legacy$$ ??? #9648support
KeymasterHi,
This define was added in one of the latest releases of the STM32 BSP and it supports controlling the HAL_LEGACY macro via the VisualGDB GUI.
Most likely you have created a project using the old BSP and then converted it to a stand-alone one using the new BSP, so VisualGDB did not find the new setting in the project configuration and did not substitute it properly. This can be safely ignored and should not happen for projects created with the new BSP.
support
KeymasterHi,
Please try manually running commands like ‘detach’ or ‘disconnect’ in the GDB session window and see if any of those ends debugging with resuming the target.
If it does, please configure VisualGDB to use that command on exit. If it does not work, please try enabling the GDB logging on the Advanced GDB Settings page of VisualGDB Project Properties. Then try ending debugging and check the last commands shown in the gdb log.
support
KeymasterHi,
Have you tried setting optimization to -Og like the tutorial suggests?
support
KeymasterHi,
Yes, you can download it manually from http://gnutoolchains.com/raspberry/
support
KeymasterHi,
Yes, we will fix this in the final BSP release.
support
KeymasterHi,
Thanks, we have managed to reproduce and fix this. Please try this build: http://sysprogs.com/files/tmp/VisualGDB-5.2.14.1318.msi
support
KeymasterHi,
Thanks for confirming this. We have added background execution for custom shortcuts to v5.3 roadmap. We will post an update here once this feature is available.
support
KeymasterHi,
Yes, please check the ‘Allow choosing build/clean/debug command hosts independently’ checkbox on the Project Settings page of VisualGDB Project Properties.
support
KeymasterHi,
VisualGDB normally does exactly that – captures the #define-s reported by gcc and feeds them into the Clang IntelliSense. If you are using MSBuild projects, you can see a list of those via View->Clang IntelliSense Diagnostics Console ->View->ProjectStatus->CFLAGS (due to a bug in the Windows edit control, it may appear empty if CFLAGS is too long; copy-pasting it to notepad should help). If you are using non-MSBuild projects, the flags are dumped in gcc_<configuration name>.h and this file is forcibly included by the Clang engine.
If you believe this is not happening, please let us know the details (which macros are missing from the IntelliSense point of view) and we will help you troubleshoot this.
-
AuthorPosts