Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

асм в IAR ARM 5.40

Отправлено колян безпарольный (193.200.150.125) 14 октября 2010, г. 17:29


переношу проект с 4.48, инициализации писаны на сях а всё остальное на асме, я в него просто из майна вваливался. Нифига короче не работает. Сократил асм до 4 строк, вывод в цап и на осцилограф. Исходный асм файл в 4.48 выглядит так:

NAME Dac
RSEG CODE
PUBLIC Dac
Dac
MOV R0,#-536870912
ORR R0,R0,#0x6C000
MOV R1,#+65280
STR R1,[R0, #+0]
BX LR ;; return
END

обьявляю в майне

void Dac(void);

вызываю в майне

int main()
{ Init();
while (1)
{Dac();
}

}

Все работает, после ресета на цапе выставляется значение.
Переношу это в чистом виде на 5.40, сразу же матерится на RSEG CODE, пишу как написано в техноте 17934

NAME Dac
PUBLIC Dac
SECTION `.text`:CODE
Dac
MOV R0,#-536870912
ORR R0,R0,#0x6C000
MOV R1,#+65280
STR R1,[R0, #+0]
BX LR ;; return
END

и нихера, молчит цап.
Проверяю вообще работает ли камень, вставляю в майн инлайн асм:
int main()

{ Init();
while (1)
{asm("MOV R0,#-536870912");
asm("ORR R0,R0,#0x6C000");
asm("MOV R1,#+65280");
asm("STR R1,[R0, #+0]");
}
}

Опять работает, значит инициализации прошли одинаково. Явно проблема в моем непонимании синтаксиса асм-файла версии 5.40. Гдето косяк с обьявлением расположения, в icf файле регион .text обявлен так:

define symbol __ICFEDIT_region_ROM_start__ = 0x100;
define symbol __ICFEDIT_region_ROM_end__ = 0x7FFFF;
define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
place in ROM_region { readonly, block BOOT, section .text };

В чем может быть косяк?


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сколько миллиампер в одном ампере ?:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru