реклама на сайте
подробности

 
 
> Таблица вызова функций. Как?, Реализация "BIOS"
EXeGLuMATOR
сообщение Sep 7 2011, 08:54
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 30-01-05
Из: Volgograd
Пользователь №: 2 305



День добрый.
Имеется желание и необходимость сделать что-то типа BIOS для LPC23хх. Мысль в следующем - загружается что-то типа лоадера, который управляет камнем, также в нем есть базовый код для работы с периферией. Он един для всех проектов. Софт верхнего уровня делается отдельно и грузится выше адресами. Как сделать, чтобы из него можно было обращаться к базовым функциям?
Мысль одна - сделать табличку с адресами соотв. функций и буферов и верхним софтом ее юзать. Только как ее заполнять? Поскольку после каждой компиляции может меняться и размер и, как следствие, "раскладка" функций в памяти.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
psL
сообщение Sep 9 2011, 16:54
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Вещь полезная. Удобно при обновлении ПО, когда меняется только пользовательская логика, а bsp остается прежним. Особенно когда bsp существенно больше пользовательского кода. Либо когда объем пользовательского кода+bsp больше объема памяти системы.
Динамически при загрузке связывать со всеми функциями BSP может быть затруднительно ввиду большого количества этих функций. Нужно как-то линковать статически с библиотекой BSP, чтобы адреса функций либы BSP оставались неизменными, и чтобы фирмварь от версии к версии вызывала их по одним и тем же адресам.
В свое время пробовал настроить линкер кейла - не получилось( Интересно как это реализовано у Тексас на его кортексах?
Go to the top of the page
 
+Quote Post
Alechek
сообщение Sep 14 2011, 07:19
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 241
Регистрация: 15-11-05
Из: Челябинск
Пользователь №: 10 882



Цитата(psL @ Sep 9 2011, 22:54) *
Вещь полезная. Удобно при обновлении ПО, когда меняется только пользовательская логика, а bsp остается прежним. Особенно когда bsp существенно больше пользовательского кода. Либо когда объем пользовательского кода+bsp больше объема памяти системы.

Бред насчет полезной вещи.
Для загрузчика BSP, как правило, весьма мало. А вот пользовательскому приложению по мере увеличения функционала может потребоваться новое BSP. Или исправление ошбок в существующем.
Так что обновление BSP тоже надо предусматривать. То есть линковка функций BSP по статическим адресам отпадает.
Go to the top of the page
 
+Quote Post
psL
сообщение Sep 15 2011, 12:02
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Цитата(Alechek @ Sep 14 2011, 11:19) *
Бред насчет полезной вещи...

Бред насчет бреда :D
Подобный вопрос на форуме периодически возникает, а внятного ответа на него что-то пока не наблюдается...

Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 16 2011, 01:32
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(psL @ Sep 15 2011, 15:02) *
Подобный вопрос на форуме периодически возникает, а внятного ответа на него что-то пока не наблюдается...

Давным - давно zltigo давал внятный ответ: не жлобиться и закладывать внешнюю NVRAM
Go to the top of the page
 
+Quote Post
psL
сообщение Sep 16 2011, 07:37
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 526
Регистрация: 5-08-05
Пользователь №: 7 390



Цитата(_Pasha @ Sep 16 2011, 05:32) *
Давным - давно zltigo давал внятный ответ: не жлобиться и закладывать внешнюю NVRAM

Непонятно, чем внешняя NVRAM спасет. Еще не факт что у MCU есть поддержка внешней памяти, не говоря об усложнении конструкции и увеличении стоимости ("...не мы такие - жисть такая...").
Интересует ответ на конкретный вопрос: как линковать свое приложение с бинарной библиотекой на кристалле в "народных" средствах разработки? В виде примера или ссылки на пример.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- EXeGLuMATOR   Таблица вызова функций. Как?   Sep 7 2011, 08:54
- - scifi   Цитата(EXeGLuMATOR @ Sep 7 2011, 12:54) М...   Sep 7 2011, 11:24
- - EugenyAM   Достаточно одного фиксированного адреса, по нему д...   Sep 8 2011, 04:14
- - AlexandrY   Цитата(EXeGLuMATOR @ Sep 7 2011, 11:54) И...   Sep 8 2011, 05:27
- - e-serg   Цитата(EXeGLuMATOR @ Sep 7 2011, 17:54) М...   Sep 8 2011, 06:22
|- - EXeGLuMATOR   Цитата(e-serg @ Sep 8 2011, 10:22) н...   Sep 8 2011, 08:17
|- - scifi   Похоже на изобретение велосипеда а-ля полновесная ...   Sep 8 2011, 08:35
|- - EXeGLuMATOR   Цитата(scifi @ Sep 8 2011, 12:35) Похоже ...   Sep 8 2011, 08:54
|- - scifi   Цитата(EXeGLuMATOR @ Sep 8 2011, 12:54) Л...   Sep 8 2011, 09:00
||- - EXeGLuMATOR   Цитата(scifi @ Sep 8 2011, 13:00) Возможн...   Sep 8 2011, 10:17
|- - AlexandrY   Цитата(EXeGLuMATOR @ Sep 8 2011, 11:54) В...   Sep 8 2011, 13:20
|- - EXeGLuMATOR   Цитата(Alechek @ Sep 14 2011, 11:19) Бред...   Sep 14 2011, 10:04
- - EXeGLuMATOR   Да, видимо так. Осталось разобраться как это сдела...   Sep 14 2011, 06:17
- - Alechek   Возможно. В итоге часть BSP зашита, часть в пользо...   Sep 14 2011, 11:57
|- - EXeGLuMATOR   Цитата(Alechek @ Sep 14 2011, 15:57) 2. б...   Sep 14 2011, 13:14
- - Alechek   2 - никуда от нее не денешся. стандартная библиоте...   Sep 14 2011, 13:57
- - EXeGLuMATOR   Ну, насколько я понимаю - просто сделать табличку ...   Sep 20 2011, 06:34


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 15:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01427 секунд с 7
ELECTRONIX ©2004-2016