This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

OpenBLT and Keil RTX

Hello All,

my goal is to use the OpenBLT Bootloader on a STM32F103C6 to flash and later update a Keil RTX project.

The bootloader part (OpenBLT with UART Interface) is using the space between 0x08000000 to 0x08001800 on ROM and 0x20000000 to 0x20000C00 on RAM.

The RTX Application is unsing a scatter-file to create the file for flashing with the OpenBLT:

; *************************************************************
; *** Scatter-Loading Description File for OpenBLT          ***
; *************************************************************

LR_IROM1 0x08001800 0x00005800  {    ; load region size_region
  ER_IROM1 0x08001800 0x00005800  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
  }
  RW_IRAM1 0x20000C00 0x00001C00  {  ; RW data
   .ANY (+RW +ZI)
  }
}

As described in the OpenBLT guide, the "Checksum placeholder" is placed at the end of the vector table of the RTX Project (startup_stm32f10x_ld.s):

                ...
                DCD     0                          ; Reserved
                DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler        ; RTC Alarm through EXTI Line
                DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
                DCD     0x55AA11EE                 ; OpenBLT Checksum Reserved place
__Vectors_End

The BOOT_FLASH_VECTOR_TABLE_CS_OFFSET is set to 0x130 in the flash.c file.

When I try to flash an RTX-like Project, the application is calling immediately the _sys_exit() function. (I'm using the

#pragma import(__use_no_semihosting)

and have implemented the function to get over the BKPT 0xAB).

When I try to flash an non-RTX Project, the application is running fine.

I think, that the problem is somewhere in the initializing code of the RTX kernel, maybe some Stack or Heap related part, but I really don't know where to start, because debugging is only possible when running the OpenBLT application and then following the program in the disassembly window...

Unfortunately I havent found a OpenBLT example who includes an Keil RTX program to run, only non-RTX examples.

Thanks

Alain