|
CodeVisionAVR, С чем лучше работать? |
|
|
|
May 4 2005, 08:42
|

Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 14-11-04
Из: Санкт-Петербург
Пользователь №: 1 125

|
Цитата(SergeyM @ May 4 2005, 12:30) Здравствуйте! Прочел про CodeVision вроде не плохая прога, но почему то не генерируется *.хекс какие то ошибки в асемблерном коде. Может знает кто как их решить или даст дельный совет про софт который лучше всего использовать? Единственный совет: разобраться в "каких-то ошибках в ассемблерном коде". Криво сломано???
--------------------
WBR, ROC.
|
|
|
|
|
May 4 2005, 10:14
|

Участник

Группа: Свой
Сообщений: 68
Регистрация: 1-05-05
Из: Снежинск
Пользователь №: 4 654

|
Цитата(LeoLabs @ May 4 2005, 11:53) лучше ИАРа ничего не знаю для AVR. Самый удобный IDE, компактный код, широкие возможности ассемблера. Вобщем выбирай его, не пожалеешь; к счастью широко доступны дистрибутивы и лекарства.  А по конкретней можно, на счет где взять.
|
|
|
|
|
May 4 2005, 10:51
|
Профессионал
    
Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079

|
Насчёт IAR- да, это лучший считается компилятор для МК на Си, не только под АВР. Но!!! один чел писал на старой работе проект под 2313, оказалось, что при прерывании он в стек толкает все 32 регистра, и т.д. и т.п. Короче- писать то он писал, потом разбирался с глюками компилятора, и писал уже код так, чтобы понравилось компилятору, короче- под него писал подстраиваясь. Попробовал я CV, пришёл к выводу- лучше по старинке- на асме и в АВР- студио. Тем более что разницы между Си и Асмом для МК я не ощутил.
|
|
|
|
|
May 4 2005, 12:17
|
Участник

Группа: Новичок
Сообщений: 41
Регистрация: 7-02-05
Пользователь №: 2 473

|
Цитата(Метценгерштейн @ May 4 2005, 13:51) .. оказалось, что при прерывании он в стек толкает все 32 регистра, и т.д. и т.п. Приведу ниже листинг начала прерывания: ; 30 /* interrupt handlers */ ; 31 #pragma vector=UART_RX_vect RSEG CODE:CODE:NOROOT(1) ; 32 __interrupt void UART_RX_interrupt( void ) ; 33 { ; __nearfunc __interrupt void UART_RX_interrupt(); UART_RX_interrupt: ST -Y,R30 ST -Y,R18 ST -Y,R17 ST -Y,R16 IN R16,0x3F DEC R28 .. .. .. IN R18,0x0C LDI R30,UART_RxHead LD R17,Z INC R17 ANDI R17,0x03 что-то не вижу я здесь всех регистров, в стек идут только те, которые используются в функции прерывания, да и то не все, а согласно Reference Гайду - The registers R4–R15 and R24–R27 are preserved by the called function. This means that they are saved on the stack if used within the function. All other registers, R0–R3, R16–R23, and R30–R31, are scratch registers. А насчет, спрашивать совета или помощи по ...какие то ошибки в асемблерном коде. - Это - к прорицателям, может они догадаются, какие же это ошибки.
|
|
|
|
|
May 4 2005, 13:44
|

Частый гость
 
Группа: Свой
Сообщений: 157
Регистрация: 14-11-04
Из: Санкт-Петербург
Пользователь №: 1 125

|
Цитата(freux @ May 4 2005, 16:17) [some text skipped] Цитата(freux @ May 4 2005, 16:17) А насчет, спрашивать совета или помощи по ...какие то ошибки в асемблерном коде. - Это - к прорицателям, может они догадаются, какие же это ошибки.
Тут может быть все проще: криво "вылеченный" CodeVision часто ругается на неизвестную функцию _main
--------------------
WBR, ROC.
|
|
|
|
|
May 4 2005, 15:13
|

Участник

Группа: Свой
Сообщений: 68
Регистрация: 1-05-05
Из: Снежинск
Пользователь №: 4 654

|
Цитата(vet @ May 4 2005, 16:49) Большое СПАСИБО! запустилась и генерит хекс
|
|
|
|
|
May 5 2005, 01:15
|

Участник

Группа: Новичок
Сообщений: 47
Регистрация: 5-03-05
Пользователь №: 3 082

|
А по конкретней можно, на счет где взять. [/quote] оценочная версия - на сайте IARа, от полной отличается лишь отсутствием исходников на си и урезанным хелпом. Про это и про лекарства - наисано в топике "Вот и новая версия IAR 4.10b". Кстати никто не поделится полной версией? А про глюки ИАРа - это как и любым грозным оружием - надо уметь пользоваться
|
|
|
|
|
May 8 2005, 06:04
|
Профессионал
    
Группа: Свой
Сообщений: 1 357
Регистрация: 12-04-05
Из: Петербург
Пользователь №: 4 079

|
я не тот кулик, который хвалит своё болото, просто пытался пересесть на Си, соответственно, делал выводы о целесобразности. Но, одни говорят, что писать на Си просто класс, другие, не менее компетентные, уверяют, что для АВР, 2313, например, лучше асма ничего не надо. Привели пример с прерываниями, может там был частный случай, не знаю, рад что это не так. Потом, если уж на Си писать, то в чём лучше? IAR или CV? И ещё вопрос- в CV как программировать кристалл байтбластером, какой интерфейс надо выбрать?
|
|
|
|
|
May 8 2005, 21:00
|
Знающий
   
Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32

|
Цитата(Метценгерштейн @ May 8 2005, 10:13) тут ещё вопрос- допустим, я хочу описать какой- то интерфейс, SPI, LCD, на асме я это просто делаю, sbi cbi nop, вот такой вот комбинацией я подстраиваюсь под график интерфейса протокола. На си как мне это сделать? Асмовской вставкой или на Си писать такие же команды? Как это вообще грамотно делать? Код PORTB.5 = 1; //аналог sbi PORTB, 5 PORTB.5 = 0; //аналог cbi PORTB, 5 delay_us(10); //задержка в 10 микросекунд (требует #include <delay.h>) delay_ms(10); //задержка в 10 миллисекунд
--------------------
Главная линия этого опуса ясна мне насквозь!
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|