ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
27 апреля
904959 Топик полностью
ЫЫукпу (18.02.2019 02:37, просмотров: 248) ответил fk0 на Если адрес заранее не известен, то всё таки напрашивается PIC (positional independent code). Не всякий компилятор умеет. Большие и для больших процессоров -- умеют (gcc для ARM, MIPS), ибо нужно для динамических библиотек в ОС. Мелкие
Ну так это "Если адрес заранее не известен", то все сложно. Если же адрес в RAM известен заранее то всё резко упрощается. Поз. независимый код уже не обязателен, линкер может настроить код для работы по адресу загрузки в RAM. Из флэша такой код работать не сможет, а после переноса в ОЗУ - пожалуйста. Называется ramfunc. Перенести код из флэшь в ОЗУ можно или при старте программы, одновременно с инициализацией переменных или отложить это дело на потом. Потом это придется делать вручную, но зато таких функций можно иметь несколько и менять по мере надобности. Это ещё одно умное слово для гугления: оверлей.
Взирая на нынешнее состояние отечества моего с таковым оком, каковое может иметь человек, воспитанный по строгим древним правилам, ... не могу я не дивиться, в сколь краткое время повредились повсюдно нравы в России. (с) кн. М.М. Щербатов.