|
Здравствуйте Гость ( Вход | Регистрация ) Доступ из РоссииДля сохранения достпа из России к сайту и форуму GBX
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() |
Аттрибуты функции в ADS
| MaXXik |
Суббота, 21 февраля 2004, 21:53
Отправлено
#1
|
|
Переводчик герой ![]() Группа: Профи Сообщений: 156 Регистрация: 15 дек. 2002 Пользователь №: 181 ![]() ![]() |
Как задать в какой секции будет находится моя СИ функция в Arm Developer Suit.
Например для функции обаботчика прерывания на асме я могу указать Area IRQhandler,CODE,READONLY - это будет секция RO А как сделать СИ функцию в RW секции ? |
| KoCMoHaBT |
Вторник, 24 февраля 2004, 17:44
Отправлено
#2
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 200 Регистрация: 29 дек. 2002 Пользователь №: 301 ![]() ![]() |
Толком я не знаю, но в старом ADS была такая фигня:
extern "C++:read/write" int foobar(int foo,int bar); ну, и так далее. Ещё была прагма "section", точнее "arm section rodata|rwdata" Пишешь: #pragma (push, arm section rodata="foobar_segment") extern "C++:read" const foo=0; extern "C++:read" const bar=0; #pragma (pop, arm section) что-то такое... Давно это было. PS: Я не научился ихним линкером управлять.... PPS: Как там мозаика? |
| KoCMoHaBT |
Вторник, 24 февраля 2004, 19:30
Отправлено
#3
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 200 Регистрация: 29 дек. 2002 Пользователь №: 301 ![]() ![]() |
Кстати -- наверное я с прагмой "push" погорячился...
И еще -- эти поганцы сами лихо с памятью управляются. Слово "const" не напишешь, и они захерачат твои данные по собственному желанию, несмотря на модификаторы. |
| MaXXik |
Суббота, 28 февраля 2004, 23:44
Отправлено
#4
|
|
Переводчик герой ![]() Группа: Профи Сообщений: 156 Регистрация: 15 дек. 2002 Пользователь №: 181 ![]() ![]() |
Даа, похоже что такая фишка доступна только для C++ версии программы.
И ещё странно переписал свой плеер, увеличив скорость работы , на уровне оптимизации 0 и 1 работает, на 2 ом уровне начинает хрюкать. Похоже где неправильно идёт работа со знаковыми данными. |
| Don |
Воскресенье, 29 февраля 2004, 02:21
Отправлено
#5
|
![]() Sega MD Developer ![]() Группа: Профи Сообщений: 2 886 Регистрация: 26 янв. 2003 Пользователь №: 608 ![]() ![]() |
максик, нет
просто имете место BUG of 3200x проца при плотной оптимизации циклов и т.д. хрюки появляются почитай на сайтах не оптимизируй сильно 8)) хотя у меня на О2... не хрюкает а во если я пускаю мод плеер и рисую стандартным СДК прямуоугольник 320х240 то хрюки появалябтся - шина перегружена... что я сделалал чтобы хрюки убрать - просто рисую 4 прямоугольникаю. а не 1... (он из них состоит) и все - хрюки исчезли 8)) про такие баги и т.д. "Gp32 sound bug" инфу думаю найдешь со знаками все классно работает так что не убивай свой код -------------------- |
| MaXXik |
Воскресенье, 29 февраля 2004, 11:06
Отправлено
#6
|
|
Переводчик герой ![]() Группа: Профи Сообщений: 156 Регистрация: 15 дек. 2002 Пользователь №: 181 ![]() ![]() |
Спасибо, Дон. Инфу про глюк в самсунговском чипе я уже читал. Там получается что нельзя делать вподряд несколько чтений/записей из/в памяти.
Но я ведь пока переписываю оригинал плеера - на GBA. Если он на нём будет быстро работать, то на gp32 вообще летать будет Кстати мой микшер сначала считывает сэмпл, потом его пишет. ТАк что поменяв процедуру проигрывания кольцевого буфера на GP`шную получится быстрый плеер на GP32 Для скорости работы обработчик прерываний нужно разместить в rw секции. |
| Don |
Воскресенье, 29 февраля 2004, 19:37
Отправлено
#7
|
![]() Sega MD Developer ![]() Группа: Профи Сообщений: 2 886 Регистрация: 26 янв. 2003 Пользователь №: 608 ![]() ![]() |
ну ты по идее...
можешь попроболвать стандартными сдк-ашными таймерами побаловаться... 8)) а плеер МОДный? эх.. вот бы МИДный бы 8)) эххх -------------------- |
![]() ![]() |
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
| Упрощённая версия | Сейчас: Вт., 27 окт. 2026, 04:28 |




Суббота, 21 февраля 2004, 21:53











