Цитата(EXeGLuMATOR @ Sep 7 2011, 17:54)

Мысль одна - сделать табличку с адресами соотв. функций и буферов и верхним софтом ее юзать. Только как ее заполнять?
Допустим так сделать примерно так
Код
uint8_t data[4096];
int flash_write(uint32_t addr, uint8_t *data, int size); //некая функция
typedef struct{
uint8_t VER_ID;
int (*flash_write)(uint32_t, uint8_t*, int);
}FS; // в этой структуре перечислим
const FS __attribute__((section(".boot_func"))) fs = {0, &flash_write}; // разместим например по адресу 0x100UL с помощью линкера
const FS *fs2 = (FS *)0x100UL; // 0x100UL - адрес куда разместили структуру.
fs.flash_write(250, data, 196); // варианты вызова одной функции.
fs2->flash_write(250, data, 196);
flash_write(250, data, 196);
Цитата(AlexandrY @ Sep 8 2011, 14:27)

Зачем в в таком примитивном микроконтроллере BIOS?
например одни и те же функции обработки данных в загрузчике и приложении.
тоже шифрование, зачем по два экземпляра кода.