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

 
 
3 страниц V  < 1 2 3  
Reply to this topicStart new topic
> получение "чистого" кода функции, вопрос новичка
Сергей Борщ
сообщение Dec 18 2007, 15:48
Сообщение #31


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(_dem @ Dec 18 2007, 16:30) *
На сим предлагаю дискуссию о целесообразности закончить и перейти к рассмотрению вопроса по существу.
Совсем недавно была подобная дискуссия. Для не-ARM архитектур нормальным решением является таблица функций, по типу таблицы векторов INT в DOS. В ARM-архитектуре для решения подобных задач как нельзя лучше подходит SWI, поскольку SWI-функция может принимать параметры и возвращать значения. Через SWI вы можете вызывать до 256 разных функций "в лоб" и сколько угодно - с некоторыми извращениями. Механизм реализации SWI-функций реализован в каком-то виде в любом компиляторе. Единственной точкой связи между приложением и "биосом" становится вектор SWI, что, как мне кажется, наиболее расширяемое и универсальное решение.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Shuuura
сообщение Dec 18 2007, 16:22
Сообщение #32


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

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



Цитата(_dem @ Dec 18 2007, 17:14) *
библиотечных функций я насчитал примерно на 632 байта, из которых 260 - ?div_module, такой объем вполне можно прилинковать и статически.

Поддержка операций с плавающей точкой займет несколько килобайт (__fMul, __fSub, __fDiv ... )
Не хочется с такие функции в юзеровскую часть тащить, тем более приложений хотется зашить несколько десятков
Как я понял системные функции нигде не определены, а встроены в компилятор и использовать предложеные решения для них не получится. Можно ли как-то использовать эти функции, кроме как разбирать map файл BIOSа извлекать их адреса? ( с дальнейшим присвоением в юзеровском проекте -Dfunc_name=address )

С библиотечными и собственными функциями все ясно, решений - любое из предложеных на выбор.
Go to the top of the page
 
+Quote Post
_dem
сообщение Dec 19 2007, 07:52
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 263
Регистрация: 2-02-07
Из: CN, Ukraine
Пользователь №: 24 970



Цитата
Поддержка операций с плавающей точкой займет несколько килобайт (__fMul, __fSub, __fDiv ... )


Хм, вынесите их просто в отдельный модуль, который будет загружатся до юзер-кода smile.gif имея единую таблицу функций, это все просто реализовать.

В противном случае,
Цитата
кроме как разбирать map файл BIOSа извлекать их адреса
, решения вроде бы не видно...

ps ну не тащите вы FPU в BIOS, не место ему там.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th August 2025 - 18:34
Рейтинг@Mail.ru


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