Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Update for EmBitz 1.11
While we all wait for the new version EmBitz 2.0, i decided to make an update for EmBitz 1.11.
First of all, this is an update of the libraries and the list of supported microcontrollers.
Download the file here

Select STM32 when creating a project to use this update.


Libraries available CMSIS, SPL, HAL, LL. Note that the HAL library is partially LL dependent. Therefore, if you select only HAL, some modules will be disabled (the list of disabled modules can be found in the stm32XXxx_hal_conf.h file).

To install this update, just unzip the archive into the folder with EmBitz 1.11.
Typically a path in x64 Windows
C:\Program Files (x86)\EmBitz\1.11\
The x86 Windows path
C:\Program Files\EmBitz\1.11\

This update requires EBlink. Current version 2.8
For installation, unpack into the EmBitz folder.

I have also updated the compiler to the current version.
This is an optional update. Install only if you need a new compiler or you need STM32L5 microcontrollers. They have an ARM Cortex-M33 core, which is not supported by the compiler GCC 5.4 from the distribution EmBitz 1.11.

Please note that EB monitor does not work with this compiler. Use Semihosting.

To use this compiler, you must select it in the window Tool settings (opens from the menu Setting -> Tools...).


Path compiler

Here are some examples of projects created using this update.


Update v1.1
Patch for "UpdateLib_1.0".
Fixed missing flag "-mfloat-abi=hard" for C++ compiler.

Attached Files
.zip (Size: 6.95 KB / Downloads: 35)
Please note that when using a new version of the compiler, interrupts do not work when LTO optimization is enabled.
In GCC 5.4 from the EmBitz distribution does not have this bug.

If you need LTO, use the workaround. Set build priority to high (menu File -> Properties) for the startup file.

Attached Files Thumbnail(s)
Wow, nice work! Thank you!
Very strangely, gcc-arm-none-eabi-9-2020-q2 did not find any new warnings or errors. I guess I don't have them.
I found new files created: specs and libraries. This is not in the official gcc-arm update. Doesn't work without add-ons.
Interrupts can be used from any * .c, * .cpp file, the main thing is to declare them weak.
void __attribute__ ((weak)) EXTI9_5_IRQHandler (void)
Printing works without problems.
Update version 1.1.

In package STM32Cube_FW_F4_V1.24.0 there a bug in the file stm32f4xx_hal_exti (structure field name difference) because of this, the code did not compile. Fixed by replacing the package with STM32Cube_FW_F4_V1.25.0.
Added choice of stack location first in RAM.

In compiler has a problem because of which did not work, the malloc function, and similar. Fixed.

EBlink updated to version 2.9
Update version 1.2.

Fixed bug DebugRAM target for STM32H7. The code was located in DTCMRAM, but in file system_stm32h7xx.c in register SCB->VTOR written memory address RAM_D1.
/* Configure the Vector Table location add offset address for cortex-M7 ------------------*/
  SCB->VTOR = D1_AXISRAM_BASE  | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal D1 AXI-RAM */
  SCB->VTOR = FLASH_BANK1_BASE | VECT_TAB_OFFSET; /* Vector Table Relocation in Internal FLASH */
Now instead DTCMRAM used RAM_D1.

Also, the debug information level has been reduced from -g3 to -g2. This has greatly reduced the size of the object files (obj folder).

EBlink updated to version 3.8
EBlink V3.9(2)

Attached Files
.zip (Size: 592.5 KB / Downloads: 25)

While building a basic stm23f429 in 'cpp' I received errors, But code was OK in plain C.

This link:-

talks about the errors I received.

Looking harder at my error message:-

c:/embitz 1.11/share/em_armgcc/bin/../lib/gcc/arm-none-eabi/5.4.1/../../../../arm-none-eabi/bin/ld.exe: error: bin\Debug\NoStdper-cpp-0.elf uses VFP register arguments, obj\debug\src\main.o does not

It is now obvious to me that I had not updated the tool path correctly, although I have not been able to recreate the error listed above. Possibly the fact that I have 5x codeblock apps installed and had also been playing around with "default.conf" may have also been playing a part in my problem.
When using GCC 9, there are no errors or warnings.

Forum Jump:

Users browsing this thread: 1 Guest(s)