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

 
 
 
Reply to this topicStart new topic
> ARM ASM, Ассемблер для ARM, пример какой-нить
SanvaldYV
сообщение Jul 9 2007, 08:43
Сообщение #1


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Всем добрый день!

Есть необходимость для контроллера LPC2103 написать на ассемблере набор функций для работы с нестандартными по размерам данными (40 и 48 бит), раньше доводилось писать на асме только для AVR, поэтому хотелось бы изучить несколько примеров или просто описание с какими регистрами надо работать в асме для ARM.
Описание инструкций нашел здесь - http://www.heyrick.co.uk/assembler/qfinder.html ,
но никаких примеров (ну даже самых простейших) у меня нет sad.gif

Буду очень признателен за помощь.
Go to the top of the page
 
+Quote Post
jasper
сообщение Jul 9 2007, 09:07
Сообщение #2


Народный чинитель
***

Группа: Участник
Сообщений: 415
Регистрация: 15-07-05
Пользователь №: 6 811



Пример реализации БПФ на армовском асме:
http://www.platan.ru/shem/pdf/bpf.pdf smile.gif
Go to the top of the page
 
+Quote Post
sqrt
сообщение Jul 9 2007, 09:15
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 66
Регистрация: 14-07-05
Из: Moscow
Пользователь №: 6 786



Цитата(Юрий Санвальд @ Jul 9 2007, 12:43) *
Описание инструкций нашел здесь - http://www.heyrick.co.uk/assembler/qfinder.html ,

На родном сайте все полнее будет:
http://www.arm.com/documentation/Instruction_Set/index.html

Для вдумчивых:
http://www.arm.com/community/university/eulaarmarm.html

Сообщение отредактировал sqrt - Jul 9 2007, 09:16
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Jul 9 2007, 09:30
Сообщение #4


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Jasper, Sqrt, премного благодарен!
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 9 2007, 09:36
Сообщение #5


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Юрий Санвальд @ Jul 9 2007, 12:43) *
Есть необходимость для контроллера LPC2103 написать на ассемблере набор функций для работы с нестандартными по размерам данными (40 и 48 бит)

IMHO можно смело использовать uint64_t и там где надо маску накладывать 0xFFFFFFFFFFFF или 0xFFFFFFFFFF
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Jul 9 2007, 12:45
Сообщение #6


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Цитата(KRS @ Jul 9 2007, 13:36) *
IMHO можно смело использовать uint64_t и там где надо маску накладывать 0xFFFFFFFFFFFF или 0xFFFFFFFFFF


Может это глупый вопрос - но как добавить поддержку этого типа в компилятор, в хелпе ИАР'а ничего о нем не нашел, где библиотеки фукций по работе с ним взять?

Да к тому же надо числа со знаком обрабатывать...

Сообщение отредактировал Юрий Санвальд - Jul 9 2007, 13:06
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 9 2007, 13:46
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Юрий Санвальд @ Jul 9 2007, 15:45) *
хелпе ИАР'а ничего о нем не нашел, где библиотеки фукций по работе с ним взять?

А причем тут IAR, это стандартные С99 унифицированные типы (как и int64_t ), описаны естественно в stdint.h. Вся работа штатная, как и со "старинным" double smile.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Jul 9 2007, 13:55
Сообщение #8


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Цитата(zltigo @ Jul 9 2007, 17:46) *
А причем тут IAR, это стандартные С99 унифицированные типы (как и int64_t ), описаны естественно в stdint.h. Вся работа штатная, как и со "старинным" double smile.gif.



А! Все понял, просто смутило название uint64_t, не сразу впер, что это аналог doubl'а.
В stdint.h все нашел, он там назван int_fast64_t.

Сообщение отредактировал Юрий Санвальд - Jul 9 2007, 13:55
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 9 2007, 14:49
Сообщение #9


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Юрий Санвальд @ Jul 9 2007, 17:55) *
А! Все понял, просто смутило название uint64_t, не сразу впер, что это аналог doubl'а.
В stdint.h все нашел, он там назван int_fast64_t.

int_fast64_t тоже есть, но есть и int64_t - для ARM это одинаковые типы, но идеологически разные - fast64 может иметь больше 64 бит, например для ARM uint_fast8_t == uint32_t, и как локальные переменные, котортые будут находится в регистрах гораздо эффективнее использовать uint_fast8_t и где необходимо добавлять & 0xff.

uint64_t - аналог double только по размеру в 64 бита.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 9 2007, 14:51
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Юрий Санвальд @ Jul 9 2007, 16:55) *
В stdint.h все нашел, он там назван int_fast64_t.

Не только - там есть кроме и 'быстрого' и 'обычный' int64_t, и 'не менее, чем'.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SanvaldYV
сообщение Jul 9 2007, 14:57
Сообщение #11


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

Группа: Свой
Сообщений: 125
Регистрация: 21-03-07
Из: Санкт-Петербург
Пользователь №: 26 371



Цитата(zltigo @ Jul 9 2007, 18:51) *
Не только - там есть кроме и 'быстрого' и 'обычный' int64_t, и 'не менее, чем'.


А что более предпочтительно с точки зрения быстродействия?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 9 2007, 15:00
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Юрий Санвальд @ Jul 9 2007, 17:57) *
А что более предпочтительно с точки зрения быстродействия?

Для ARM, полагаю, все равно, но если ходите сказать, что сделали все, что в Ваших силах, напишите fast smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 5th June 2024 - 18:38
Рейтинг@Mail.ru


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