Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
компилятор вааще делает большое одолжение, когда оптимизирует чтение/модификацию/запись бита до SBI. А заставить его не понимать любую фигню как адрес io-регистра... это как бежать навстречу скорому поезду и кричать "задавлю!"
Отправлено
Vit
(77.123.100.54)
15 августа 2010, г. 20:26
В ответ на:
Чтобы в массиве поиметь код универсальной (для всех бит-доступных ior) "SBI ior, bit" нужен сдвиг ior на 3 влево. Там в 16-разрядном коде инструкции sbi располагается адрес ior, в котором и ставится бит. А в самых правых 3 битах - номер устанавливаемого бита.
отправлено
VasilyS
15 августа 2010, г. 20:13
Составить ответ
|
Вернуться на конференцию
Ответы
Ну так здесь оптимизация не трэба. Это ведь сам программист будет писать в массиве асм-инструкцию asm_SBI( PORTE, 2 ). А роль компилятора - оттранслировать ее в код 0хnnnn и положить в флеш-массив. Вроде все составные части ему даю, осталось как Лего собрать: Биты 15-8 коп, биты 7-3 адрес регистра IO, биты 2-0 - номер устанавливаемого бита.
-
VasilyS
(15.08.2010, 20:36:33
80.92.96.25
,
пустое
)
Ну дык сдвиг тогда нахрена??? Если регистр io, то компилятор генерит SBI без лишних движений
-
Vit
(15.08.2010, 20:49:48
77.123.100.54
,
пустое
,
ссылка
)
Ну как код инструкции положить в массив-то? Они ж из массива выполняются. Причем макрос asm_SBI(ior, bit) должен быть универсальным, и Эмулировать инструкции для всех IO регистров. Адреса ior в коде сдвинуты. Мне надо ПРОСТО: составить код инструкции и положить его в массив.
-
VasilyS
(15.08.2010, 20:55:1
80.92.96.25
,
пустое
)
если б это не требовало изврата, то техника была бы интересной. а в Сях есть вызов функции по указателю и никто не запрещает его использовать.
-
Vit
(15.08.2010, 23:38:13
77.123.100.54
, 549 байт)
"не" лишняя
-
Vit
(15.08.2010, 20:26:53
77.123.100.54
,
пустое
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
что получится, если сложить 4 и 4 ?
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru