atiny26/atmega8: пишутся, читаются, не работают
Нет что вы. 50 баксов это не много. Это ДАХРЕНА! Да 50 баксов мне хватит на дорогу к нему и обратно если он живет на Украине. Не не стоит отдавать такую сумму если прошивать МК для себя. если на фирме серьезный проэкт тогда да...
There is only 10 kind of people: those who understands binary code and those who dont!!!
- Реклама
Если самодельный программатор прошил и проверил и сказал: "все ОК". Значит так оно и есть. У меня два программатора и оба самодельные. Сотни раз программировал tiny2313. И ни разу мыслей не возникало что программатор мог ошибиться. Это цифровые вещи и после успешной верификации 100% гарантия что все записано верно.Ватсон писал(а): Ещё раз повторяю: достань где нибудь фирменный программатор и прошей. В Киеве вроде с этим проблем нету. Например, AVRISP mkII сейчас раздают по 50$ за штуку, неужели много?
Если конечно у кого-то много денег и мало времени тогда можно и за 50$ купить. А вот у меня скорее наоборот и я соберу себе в 10 раз дешевле.
Последний раз редактировалось Инженер Сб май 10, 2008 20:09:24, всего редактировалось 1 раз.
- Сообщения: 11
- Зарегистрирован: Вс мар 09, 2008 23:35:07
Я может чего курнул не того или ночь, но чего-то я не вкуриваю, а где собственно программа?Инженер писал(а): 1. команда rcall заносит в СТЕК неверный адрес
2. команда ret возвращает из СТЕКа невернвй адрес (и передает управление этому загадочному адресу)
3. СТЕК находиться в незаписывемой области памяти
4. у меня кривой компилятор (кривой файл m8def.inc)
Если это те строчки что Вы привели, то Asm не C++
Тута все определять нужно что куда...
Хотя может это у Вас все делается автоматически... несли нет, то программа совсем не верная...
Для примера...
Вы пишите про стек... А Хде вы его определяете?
Вы поставили org 0, в строке после этого должен идти вектор (или как там по русски) на начало программы...
А потом список векторов ппрерывания, а у Вас при компиляции код записывается на место этих векторов
Продолжать?
P.S. Если я не прав, скажите! Брошу курить!
Попрошу не путать меня с Основателем темы и главным вопрошающим.V-SV писал(а):Я может чего курнул не того или ночь, но чего-то я не вкуриваю, а где собственно программа?Инженер писал(а): 1. команда rcall заносит в СТЕК неверный адрес
2. команда ret возвращает из СТЕКа невернвй адрес (и передает управление этому загадочному адресу)
3. СТЕК находиться в незаписывемой области памяти
4. у меня кривой компилятор (кривой файл m8def.inc)
Если это те строчки что Вы привели, то Asm не C++
Тута все определять нужно что куда...
Хотя может это у Вас все делается автоматически... несли нет, то программа совсем не верная...
Для примера...
Вы пишите про стек... А Хде вы его определяете?
Мне уже подсказали я неверно инициализировал СТЕК - у меги8 для адресации ОЗУ используется 2 байта, а я до сих пор работал с tiny2313 и tiny13 где для тех же целей хватает одного.
Вообще то ты прав. Но прерывания в программе не используются так что это НЕ КРИТИЧНО. (хоть и не проффессионально, неграмотно и вообщеV-SV писал(а): Вы поставили org 0, в строке после этого должен идти вектор (или как там по русски) на начало программы...
А потом список векторов ппрерывания, а у Вас при компиляции код записывается на место этих векторов
Продолжать?
P.S. Если я не прав, скажите! Брошу курить!
если прерывания не используются, то занять выделяемую под вектора память чем-то полезным - профессионально, грамотно и т.п. 
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
- Реклама
- Сообщения: 11
- Зарегистрирован: Вс мар 09, 2008 23:35:07
Сорри, если чего не так...Инженер писал(а): Попрошу не путать меня с Основателем темы и главным вопрошающим.
Мне уже подсказали...
В даташитах было явно написано, что первый байт с адреса 0, смещение на начало программы, а тут с "0" начинается программа...
P.S. Никого не хотел обидеть!
/* В даташитах было явно написано, что первый байт с адреса 0, смещение на начало программы, а тут с "0" начинается программа... */
Здесь чуть не так, контроллер начинает віполнять программу с адреса 0 во flash памяти. А где дальше будут объявляться переходы и остальное - это дело компиляторов. Тебе никто не мешает начать прогу с середины МК, но при этом компилятор в первые адреса сам поместит инфу, что начало прогри у тя там.
Вспомни bootloader, он расположен далеко, но ссылка на него все-же в начале.
Так что, можешь начинать и с нуля. Flash - это обычная память, процу наплевать на всякие там .org, откуда вычислит прочесть байт - от туда и прочтет.
Здесь чуть не так, контроллер начинает віполнять программу с адреса 0 во flash памяти. А где дальше будут объявляться переходы и остальное - это дело компиляторов. Тебе никто не мешает начать прогу с середины МК, но при этом компилятор в первые адреса сам поместит инфу, что начало прогри у тя там.
Вспомни bootloader, он расположен далеко, но ссылка на него все-же в начале.
Так что, можешь начинать и с нуля. Flash - это обычная память, процу наплевать на всякие там .org, откуда вычислит прочесть байт - от туда и прочтет.


