Как загрузчик или загрузчик загрузят приложение для запуска - PullRequest
0 голосов
/ 15 ноября 2018

Плата ARM9 Mini2440 или S3C2440 оснащена процессором arm, при загрузке с NOR-флешки она может напрямую запускаться с NOR-флешки, которая загружает небольшой загрузчик под названием «super vivi», есть опция «Download and Run».

Я попытался скомпилировать светодиодную программу C и соответствующий код сборки, чтобы загрузить основную функцию C.

После компиляции я создал файл bin, загрузил его в supervivi.

Сценарий ссылки:

ENTRY(_start)
SECTIONS
{
   . = 0x30000000;
   /* code and constants */
   .text :{
      *(.text)
   }  
   . = ALIGN(32);
   .data :{
      *(.data)
   }
   . = ALIGN(32);
   .bss :{
      *(.bss)
   }
}

Мой вопрос: как распределяется память, supervivi (загрузчик) будет запускаться с 0x0000000, моя программа светодиодной вспышки запускается с 0x30000000, это правильно?

У supervivi будут некоторые данные или стек, где они находятся?

Если мой скрипт ссылки изменится с ". = 0x30000000;" to ". = 0x0;", что будет?

Может ли мое приложение прочитать флэш-память NAND и скопировать ее в ОЗУ, скажем, прочитать из 0x60000, в котором хранится ядро, и запустить ядро ​​из ОЗУ? Если я могу, где следует использовать позицию ОЗУ?

Извините, слишком много вопросов, наверное, они связаны между собой.

...