|
|
  |
Частичная компиляция в Keil |
|
|
|
Feb 1 2010, 09:31
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 3-05-08
Из: Minsk
Пользователь №: 37 240

|
Цитата(aaarrr @ Feb 1 2010, 11:18)  Можно сделать отдельный проект, содержащий нужные процедуры и таблицу с точками входов. В основной программе стоит предусмотреть проверку целостности дополнительной прошивки. К сожалению не такой большой спец, как хотелось бы, поэтому хотелось бы уточнений. Проект я могу создать только с main функцией, так? Её пустой оставить? Тогда для компиляции надо оптимизацию вырубить. Ещё, если можно. пару строчек таблицы точек входа, что-то я плохо представляю, может потому что понедельник?
|
|
|
|
|
Feb 1 2010, 09:42
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(Anatoly_P @ Feb 1 2010, 12:31)  Проект я могу создать только с main функцией, так? Не обязательно. Достаточно поставить галочку "Don't Search Standard Libraries" в опциях линкера. При этом, правда, придется самому позаботиться о действительно нужных библиотеках (арифметика, например). Ну или оставить пустой main со всем мусором. Зачем только оптимизацию отключать? Цитата(Anatoly_P @ Feb 1 2010, 12:31)  Ещё, если можно. пару строчек таблицы точек входа, что-то я плохо представляю, может потому что понедельник? Создаем ассемблерный файл с таблицей: Код AREA HEADER, DATA, READONLY
IMPORT func1 IMPORT func2 IMPORT func3 ...
DCD func1 DCD func2 DCD func2 ...
END Как вариант, можно бренчи вместо адресов поставить. Затем в скрипте линкера ставим его в начало: * (HEADER, +First)
|
|
|
|
|
Feb 1 2010, 10:03
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 3-05-08
Из: Minsk
Пользователь №: 37 240

|
Цитата(aaarrr @ Feb 1 2010, 11:42)  Как вариант, можно бренчи вместо адресов поставить. Затем в скрипте линкера ставим его в начало: * (HEADER, +First) В АРМовский Ассемблер я ещё не лазил, так что поэтому и не в курсе таблиц. Ладно, надо пробовать... Спасибо за ответ, начну что-то делать, буду спрашивать..
|
|
|
|
|
Feb 1 2010, 12:37
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 3-05-08
Из: Minsk
Пользователь №: 37 240

|
Цитата(scifi @ Feb 1 2010, 14:22)  Для этого есть хороший метод: интерпретатор скриптового языка. А пользователю даём возможность загружать и выполнять скрипты. Мне довелось для этого использовать Pawn (поищите в гугле). Впечатления остались очень хорошие. Однако, такое решение требует некоторого опыта от разработчика. Впрочем, как и частичное обновление прошивки, которое Вы предлагаете. Насчет организации прошивки со стороны ПК проблем быть не должно т.к. все-равно пишу интерфейс работы с устройством, ну вставлю туда ещё и прошивку. Т.е. это в принципе представляю как делать, но меня интересуют тонкости для самого АРМа, чтобы там все работало..
|
|
|
|
|
Feb 3 2010, 07:59
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 3-05-08
Из: Minsk
Пользователь №: 37 240

|
Цитата(scifi @ Feb 1 2010, 15:25)  Тут специфики АРМа нет. В других процессорах стыковка кусков кода будет происходить аналогично. Я бы предложил задуматься над ещё одним вопросом: а как пользователь будет генерировать обновлённую прошивку? Он будет устанавливать у себя Keil MDK? А отлаживать как? Всё это может оказаться очень непрактичным. Обновленную прошивку пользователю производитель даст ( или я). У меня тут возник ещё один вопрос. Как подключить библиотеку, созданную в Keil в IAR? Или вообще к любому дргугому проекту для АРМ. Или точнее Keil создает стандартные библиотеки, которые можно потом использовать в любом проекте АРМ или у него свой спецефический формат файла библиотек. Я просто кроме Кейла ни с чем больше не работал.
|
|
|
|
|
Feb 3 2010, 10:42
|
Участник

Группа: Участник
Сообщений: 32
Регистрация: 3-05-08
Из: Minsk
Пользователь №: 37 240

|
Цитата(aaarrr @ Feb 3 2010, 11:56)  Нет, они не совместимы. А в контексте задачи не понятно, зачем это надо. Это я попутно, это не связано с предыдущим вопросом. Мне надо как-то сделать библиотеку функций, чтоб её можно было к любому АРМ проекту подключить. Есть такая возможность. Может с gcc скомпилировать и слинковать? У линковщика Keil тоже какие-то опции есть, можно формат библиотек менять. Вообщем может подскажете какой формат библиотек универсальный ли такого нет и придется в каждом отдельном случае для конкретного компилятора делать?
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|