0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 3
|
|
1 | |
Мистика?22.08.2010, 08:56. Показов 12777. Ответов 32
Метки нет (Все метки)
Здравствуйте.
Помогите разобраться со сложившейся ситуацией: в AVR Studyo отлаживаю прогу на меге 8535 и наблюдается такая картина Код
ldi ZL, LOW(MODE_0) ldi ZH, HIGH(MODE_0) lpm acc, Z+ .... MODE_0: .db "symus" lpm acc, Z+ в регистре acc появляется какая-то ерунда: код "s" это 73h, а в регистр попадает 2Сh. Подскажите где косяк?
0
|
22.08.2010, 08:56 | |
Ответы с готовыми решениями:
32
AVR + buzzer. Мистика мистика stm32f103 Мистика с выводом через printf - МК не запускается Мистика в Qt Мистика с ip |
Utov
|
|
22.08.2010, 09:36 | 2 |
Во первых адреса в флеше надо умножать на 2.
ldi ZL, LOW(MODE_0*2) ldi ZH, HIGH(MODE_0*2) lpm acc, Z+ Во вторых компилятор должен ругаться на строку MODE_0: .db "symus" у тебя там 5 байт, должно быть четное количество MODE_0: .db "symus",0 |
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
22.08.2010, 09:58 | 3 |
Сообщение от Utov
А как хорошо на ассемблере — у нас есть указатель Z и забойная команда LPM. А дальше Ать-ать-ать и сами накруичиваем любые матрешки из вложенных подропрограмм, потрошащих флеш вдоль, поперек и по диагонали. Благодать! Конец цитаты. А как хорошо на Си! С добрым утром, коллеги!
0
|
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 3
|
|
22.08.2010, 10:06 | 4 |
Utov, спасибо огромное, с умножением теперь правильно получается.
компилятор не ругается, т.к. у меня строка "symus " (с пробелом)...не вписал сюда изначально пробел про четное количество на будущее учту.
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
22.08.2010, 10:56 | 5 |
Никто не подскажет, на что здесь ругается студия? И что сдесь можно сделать, чтобы предупреждение убрать?
0
|
0 / 0 / 0
Регистрация: 12.08.2010
Сообщений: 64
|
|
22.08.2010, 11:03 | 6 |
НУ типа так надо наверно 0x00b6
odd нечетное
0
|
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 3,496
|
|
22.08.2010, 11:19 | 7 |
Чётное, нечётное, какая разница? Никому оно не должно, и особо ни на что не влияет, разве в случае, когда надо иметь две строки данных, и изредка использовать их как одну. В этом случае внезапно может ноль в середине всплыть. Компилятор предупреждение выдал, что дополнено до границы, и всё.
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
22.08.2010, 11:21 | 8 |
Сообщение от ishkymkot
0
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
22.08.2010, 11:23 | 9 |
Сообщение от Гарнист
0
|
Utov
|
|
22.08.2010, 11:31 | 10 |
Сообщение от drvtos
А по поводу С, оно все равно не избавляет от необходимости знания нюансов... |
Utov
|
|
22.08.2010, 11:37 | 11 |
[QUOTE="R_uro"]Никто не подскажет, на что здесь ругается студия? И что сдесь можно сделать, чтобы предупреждение убрать?
[QUOTE="Цитата:[/QUOTE] |
0 / 0 / 0
Регистрация: 02.03.2012
Сообщений: 3
|
|
22.08.2010, 11:49 | 12 |
[QUOTE="Utov"][QUOTE="R_uro"]Никто не подскажет, на что здесь ругается студия? И что сдесь можно сделать, чтобы предупреждение убрать?
там речь про количество байт, а не само число
0
|
Utov
|
|
22.08.2010, 12:08 | 13 |
Я и говорю что проблема не в этой строчке :)
|
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
22.08.2010, 12:17 | 14 |
Сообщение от Utov
0
|
Utov
|
|
22.08.2010, 12:36 | 15 |
ты с помощью этих констант выделяешь память в флеше? Если да, то b7 и b9 вызовут сообщения компилятора.
Вообще если честно, какието зверские константы :) Разобраться в этих числах наверное даже тебе будет сложно через пару месяцев. |
0 / 0 / 0
Регистрация: 06.04.2010
Сообщений: 1,088
|
|
22.08.2010, 12:43 | 16 |
Это я по неопытности в своей первой программе так расписал оперативку под разные счетчики, флаги и т.п. . Чтобы их можно было в отладчике контролировать . Может и неправильно, с точки зрения профессионала, но работает нормально.
Разобраться в этих числах несложно. Это адреса в озу. А то, что много счетчиков, флагов и т.п. - так программа такая. Около 20 кбайт общий размер получился.. А почему на b7, b9 компилятор будет ругаться?
0
|
Utov
|
|
22.08.2010, 12:56 | 17 |
Сообщение от Utov
Но как я понял у тебя это только адреса, да еще и в озу, тогда надо в прогу вникать, трудно понять в чем проблема без информации. |
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
22.08.2010, 13:20 | 18 |
Память флеша В СТУДИИ (это важно, т.к. в проце байтами) адресуется словами, это я не раз и не два говорил. Поэтому то нужно и на два умножать, поэтому то и в строке нечетное число байт не может быть введено. Жуткий маразм, но это так :(((
Например data: db 1,2,3 db 4,5,6 По идее должно дать один сплошной массив в памяти 1.2.3.4.5.6 а на строки поделено чисто для удобства (меток то между ними нет!). Но студия будет ругаться варнингом и в конце каждой строки добавлять еще 0. Бред, но вот так вот.
0
|
0 / 0 / 1
Регистрация: 22.01.2010
Сообщений: 4,000
|
|
22.08.2010, 13:23 | 19 |
"А как хорошо на Си!"
Ну да, но вот только на то чтобы разобраться с тем как работает конструкция pgm_read_*** и со всеми заморочками для создания таблиц адресов в памяти флеша на Си придется убить прорву времени и без лазания по форумам и шустрения примеров кода просветления тут не достичь. Т.к. там извращено очень. Тут же только понять как идет адерсация. Топикстартер же мог и вопрос даже не задавать, а посмотреть в листинге адрес своей метки и то, что реально записалось в Z и сделать выводы относительно умножения их на два.
0
|
2 / 2 / 0
Регистрация: 25.05.2010
Сообщений: 3,609
|
|
22.08.2010, 13:57 | 20 |
Сообщение от DY HOTT
Еще чуть офтопа. Знаешь, иногда и понимаю, что можно раскуртить инфо в "безлюдных" материалах. Например, ща вот буду разбираться с видами оптимизации в GCC (совешенно убил меня Студио в режиме симуляции: программа ходит своими неизведанными стежками, хрен просцышь!) Разберусь по мануалам, не вопрос. Но всегда понимаю, что сильно упираться там не стоит - то, что не понимается, проще спросить на хорошем форуме. Твой форум - среди лучших, это точно. Быстро и четко отвечают (иногда продолжая потом дискуссию без топикстартера - но этим и AVRfrioks грешат...), атмосфера дружеская... Хорошо!
0
|
22.08.2010, 13:57 | |
22.08.2010, 13:57 | |
Помогаю со студенческими работами здесь
20
Мистика с БП Мистика Мистика Мистика Мистика) мистика? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |