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

 
 
10 страниц V  « < 7 8 9 10 >  
Reply to this topicStart new topic
> startup asm
aaarrr
сообщение Jan 23 2009, 16:51
Сообщение #121


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sergey sva @ Jan 23 2009, 19:41) *
А если оставить этот же стартап но использовать вот такой код в обработчике?

Лучше и правильнее дать компилятору разобраться, какие регистры ему использовать и сохранять.

Цитата(zltigo @ Jan 23 2009, 19:44) *
Для ARM7 с его штатными IRQ и FIQ смысл организации вложеных прерываний практически свидетельствует о банальном бездумом подходе к делу.

Иногда нужно иметь несколько прерываний с максимальным приоритетом, одним FIQ в таком случае не обойдешься.
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jan 23 2009, 16:51
Сообщение #122


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Цитата
Для ARM7 с его штатными IRQ и FIQ смысл организации вложеных прерываний практически свидетельствует о банальном бездумом подходе к делу


а что плохого в вложеных прерываниях для ARM7?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 23 2009, 16:52
Сообщение #123


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(sergey sva @ Jan 23 2009, 19:51) *
а что плохого в вложеных прерываниях для ARM7?

То, что как было уже неоднократно замечено, нужны они далеко не всегда.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 23 2009, 16:58
Сообщение #124


Гуру
******

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



Цитата(aaarrr @ Jan 23 2009, 18:51) *
Иногда нужно иметь несколько прерываний с максимальным приоритетом, одним FIQ в таком случае не обойдешься.

Какие проблемы иметь несколько прерываний на FIQ? Будет, естесвенно, несколько тактов лишних потрачено на это, но эти затраты не сравнимы с неумными софтовыми организациями вложенности. 


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 23 2009, 17:05
Сообщение #125


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Jan 23 2009, 19:58) *
Какие проблемы иметь несколько прерываний на FIQ? Будет, естесвенно, несколько тактов лишних потрачено на это, но эти затраты не сравнимы с неумными софтовыми организациями вложенности.

Затраты как раз сравнимы - те же несколько тактов.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 23 2009, 17:26
Сообщение #126


Гуру
******

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



Цитата(aaarrr @ Jan 23 2009, 19:05) *
Затраты как раз сравнимы - те же несколько тактов.


Это вариант "несколько FIQ"  


Код
ldr     pc,[pc,#-0xF20]


То, что написано в качестве обертки для организации вложенности, полагаю, Вы еще помните? Или освежить? Сколько там тактов!?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
singlskv
сообщение Jan 23 2009, 18:39
Сообщение #127


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zltigo @ Jan 23 2009, 19:44) *
Да и сами вложенные прерывания почти ненужная вещь. Делал за всю жизнь ровно два раза. Для ARM7 с его штатными IRQ и FIQ смысл организации вложеных прерываний практически свидетельствует о банальном бездумом подходе к делу.       
+1
Не нужны почти никогда вложенные прерывания,
конкретно для арм, FIQ + невложенные IRQ прерывания должно хватать для 99% применений..
тч всякие очень умные обработчики нафиг не нужны... обычно... ИМХО...
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 23 2009, 19:00
Сообщение #128


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Jan 23 2009, 20:26) *
Это вариант "несколько FIQ"  
Код
ldr     pc,[pc,#-0xF20]

Спешу огорчить: работать не будет. Придется еще ручками источник найти. Сколько это тактов?

Цитата(singlskv @ Jan 23 2009, 21:39) *
конкретно для арм, FIQ + невложенные IRQ прерывания должно хватать для 99% применений..

Ну, мне приходилось встречаться и с этим 1%. Хотя пару раз всего.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 23 2009, 19:21
Сообщение #129


Гуру
******

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



Цитата(aaarrr @ Jan 23 2009, 21:00) *
Спешу огорчить: работать не будет. Придется еще ручками источник найти. Сколько это тактов?



Ну вообще-то это Ваш код для Атмел из поста #53 дежавью? А что, у атмеловские AIC настолько примитивны, что вектор для FIQ не хранят? Ну пусть не одна, так несколько команд - считать источник, test и прыгнуть. По любому и близко к затратам сохранение/воссановление контекста не лежит.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 23 2009, 19:33
Сообщение #130


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Jan 23 2009, 22:21) *
А что, у атмеловские AIC настолько примитивны, что вектор для FIQ не хранят?

Хранят, но читается из него всегда одно значение, увы sad.gif
Да и на столь любимых Вами LPC с их PL190/192 векторизация FIQ как-то не предусмотрена - вот же примитив smile.gif

Цитата(zltigo @ Jan 23 2009, 22:21) *
Ну пусть не одна, так несколько команд - считать источник, test и прыгнуть. По любому и близко к затратам сохранение/воссановление контекста не лежит.

Не нужно демонизировать затраты. С выключенными прерываниями нужно выполнить всего-то пяток команд:
Код
        sub      r14, r14, #0x04
        stmfd    sp!, {r14}
        mrs      r14, SPSR
        stmfd    sp!, {r0, r14}
        msr      CPSR_c, #ARM_MODE_SYS

А уж от сохранения/восстановления контекста в любом случае никуда не деться, тут Вы хватили.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 23 2009, 20:38
Сообщение #131


Гуру
******

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



Цитата(aaarrr @ Jan 23 2009, 21:33) *
А уж от сохранения/восстановления контекста в любом случае никуда не деться, тут Вы хватили.


Вопрос в размере контекста и степени бездумности его сохранения.


Цитата
Да и на столь любимых Вами LPC с их PL190/192 векторизация FIQ как-то не предусмотрена - вот же примитив


Я в курсе LPC smile.gif и почему FIQ это FIQ. Напомню, что отцитированый код - Ваш, а не мой.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 23 2009, 21:09
Сообщение #132


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Jan 23 2009, 23:38) *
Вопрос в размере контекста и степени бездумности его сохранения.

SPSR, LR - не так уж много.

Цитата(zltigo @ Jan 23 2009, 23:38) *
Напомню, что отцитированый код с попыткой изобразить обработку векторизации FIQ для Aтмел и к тому-же с чтением какого-то другого порта - Ваш, а не мой.

Опять включили воображение некстати? Попытка изобразить обработку векторизации - звучит-то как!

Готов выслушать замечания и по такому фрагменту:
Код
    nop

Уверен, они у Вас найдутся wink.gif
Go to the top of the page
 
+Quote Post
sergey sva
сообщение Jan 23 2009, 21:15
Сообщение #133


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Принялся за скрипт для линковщика, посмотрел примеры от атмела для Using Open Source Tools for AT91SAM7S Cross Development revision
Хочу попробовать его с этим стартапом. Такой вопрос: после того как будет сгенерирован бинарник, его можно просмотреть,
может программа есть специальная, имею ввиду адреса как он там все распределил ?
Если не затруднит, что еще нужно добавить что бы использовать с этим стартапам ?
CODE

OUTPUT_FORMAT("elf32-littlearm") /* формат памяти. прямой порядок байт (Little-endian). */
OUTPUT_ARCH(arm) /* архитектура АРМ */

ENTRY(_vec_reset) /* вектор сброса */

/* Память микроконтроллера AT91SAM7S256 */
MEMORY
{
flash : ORIGIN = 0x00100000, LENGTH = 256K /* FLASH EPROM */
ram : ORIGIN = 0x00200000, LENGTH = 64K /* static RAM area */
}

_stack_end = 0x0020FA00; /* конец стека (верх стека) */


SECTIONS /* начало секции */
{
. = 0;

.text :
{
*(.text) /* поместить сектор текст в флэш */
} >flash /*TEXT располажение flash */

.data :
{
*(.data) /* поместить сектор дата в рам */
} >ram /*DATA располажение в рам */

.bss :
{


} >ram /*BSS располажение в рам */


} /* конец секции */



Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 23 2009, 21:34
Сообщение #134


Гуру
******

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



Цитата(aaarrr @ Jan 23 2009, 23:09) *
SPSR, LR - не так уж много.



И переключение режимов.. Короче, это по минимуму 8 команд. 

Цитата
Готов выслушать замечания и по такому фрагменту:
Код
    nop

Уверен, они у Вас найдутся wink.gif


Мои замечия относились во к этому Вашему коду:


Цитата
  ldr pc, RESET_ADDR
  ldr pc, UNDEF_ADDR
  ldr pc, SWI_ADDR
  ldr pc, PREFETCH_ABORT_ADDR
  ldr pc, DATA_ABORT_ADDR
  .word 0
  ldr pc,[pc,#-0xF20];
  ldr pc,[pc,#-0xF20];  


Вы действительно считаете, что я придираюсь и мне следовало промолчать?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Jan 23 2009, 21:58
Сообщение #135


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Jan 24 2009, 00:34) *
Вы действительно считаете, что я придираюсь и мне следовало промолчать?

Да, я так считаю. Не можете молчать - ознакомьтесь сначала с проблемой, а не трактуйте действие команды исходя из ее "похожести" на соседнюю.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th July 2025 - 05:49
Рейтинг@Mail.ru


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