Программирование ARM: решение проблем, FAQ '__checksum' was not found in the string table Thu, November 21 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


'__checksum' was not found in the string table Печать
Добавил(а) microsin   

Такое сообщение будет выведено утилитой ielftool на стадии линковки проекта IAR, если в проекте настроен подсчет контрольной суммы прошивки, но при этом либо не настроен файл опций линкера *.icf, либо не определена (или неправильно определена) переменная __checksum.

Пример такого сообщения:

Linking
ielftool error: The string '__checksum' was not found in the string table
Error while running ielftool "--fill" "0xFF;0x8008000-0x80ffffb" "--checksum"
 "__checksum:4,crc32:Li,0xffffffff;0x8008000-0x80ffffb" "--verbose"
 "D:\asm\SD-card-boot\EWARM\L496\Exe\ 
stm32-bootloader.out.tmp" "D:\asm\SD-card-boot\EWARM\L496\Exe\stm32-bootloader.out"
Error while running Linker
 
Total number of errors: 2
Total number of warnings: 0

Простой способ устранения ошибки:

1. Создайте декларацию внешней переменной __checksum:

extern uint32_t __checksum;

2. Сделайте произвольное обращение этой переменной, чтобы линкер не удалил выделение памяти под эту переменную. Например вот так:

if (__checksum) HAL_Delay(1);

Альтернативный способ - используйте отличное руководство по применению контрольной суммы в проекте IAR, которое можно найти по ссылке [1].

[Ссылки

1. CRC прошивки средствами IAR и STM32 site:tqfp.org.
2. Checksum calculation with IAR ILINK Linker and IELFTOOL site:iar.com.
3. Calculating CRC32 with IAR ELF Tool the same way as STM32 hardware site:iar.com.
4. IELFTOOL Checksum - The basic actions site:iar.com.
5. Демистификация CRC32.
6. Программная реализация CRC-алгоритма STM32.

 

Добавить комментарий


Защитный код
Обновить

Top of Page