Доброго времени всем
Сделан некий бут, который должен принять bin, прошить его по некому адресу и передать управление на точку входа
Собственно само приложение описывается, как размещаемое в определенных секторах FLASH в скаттере (или через Target Dialog - сути не меняет)
Вот что пишет кейл:
Код
Build Project 'test' - Target 'Target 1'
compiling test.c...
linking...
Program Size: Code=536 RO-data=64 RW-data=8 ZI-data=100
FromELF: creating hex file...
User command #1: test.bat
D:\Test\>"c:\program files (x86)\Keil\ARM\BIN40\fromelf" --bin -o ".\OBJ\test.bin" ".\OBJ\test.axf"
".\OBJ\test.axf" - 0 Error(s), 0 Warning(s).
дальше интереснее
вместо файла test.bin создается
директория test.bin, в которой лежат два файла:
ER_RO
ER$$.ARM.__AT_0x20000200
адрес 0x200000200 - это фиксированный адрес структуры, которая содержит адреса векторов, некоторых функций, находящихся в области бута и которые могут быть использованы приложением
сам сишный файл такого вида:
Код
#include <LPC29xx.h>
#include ".\\..\\interproject\\interproject.h"
unsigned long boot_switch __attribute__((at(BOOT_SWITCH)));
const Interconn_t export_table __attribute__((at(EXPORT_TABLE)));
void (*ReadUSB)(unsigned int*, unsigned int);
void (*WriteUSB)(unsigned int*, unsigned int);
//#pragma arm section code = "RESET"
int main()
{
unsigned int test[100];
ReadUSB = (void (*)(unsigned int*, unsigned int))export_table.fx2_read;
WriteUSB = (void (*)(unsigned int*, unsigned int))export_table.fx2_write;
while (1)
{
ReadUSB(test, 10);
WriteUSB(test, 10);
};
}
//#pragma arm section code
прагмы закомментированы, т.к. описано все в Target Dialog, скаттер отключил
более в проекте нет ничего (т.к. вся стартаповая часть уже есть в буте)
Ну и вопрос - почему не создается bin-файл, хотя нет ошибок и претензий ни на одном этапе компиляции, сборки и перевода elf->bin ?
спасибо за все дельные каменты моих граблей