WinAvr в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение ARV »

кстати, писать на Си для безозушных МК принципиально возможно, хотя и непросто. нужно придерживаться следующих правил:
1. не использовать стандартные библиотеки
2. не использовать стандартные хидеры, т.е. все регистры и т.п. объявить самостоятельно
3. следить за аппаратным стеком (если он есть), т.е. свести обращения к функциям к минимуму.
4. если все-таки есть функции, они все должны быть обязательно static или inline
5. все глобальные переменные должны быть только регистровыми
6. где-то в сети проскакивали и другие рекомендации - не поню... кажется, в FAQ к WinAVR есть...

честно говоря, все это больше похоже на извращение... но теоретически можно :)
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Аlex »

Gudd-Head писал(а):Можно как-то не писать еррор еоррор и варнинг варнинг два раза два раза?
Можно так попробовать :

Код: Выделить всё

#ifndef F_CPU_VER
  #define F_CPU_VER
  #ifndef F_CPU
    #error "F_CPU not defined"
  #endif
#endif
Реклама
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: WinAvr в вопросах и ответах

Сообщение Gudd-Head »

ARV писал(а):3. следить за аппаратным стеком (если он есть), т.е. свести обращения к функциям к минимуму.
В 10-й тиньке нет стэка. Как тогда вызывать функции и работать в прерываниях?? :shock:

Не, всё равно «... error: #error "F_CPU not defined"»
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение ARV »

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

Мой уютный бложик... заходите!
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Аlex »

Gudd-Head писал(а):Не, всё равно «... error: #error "F_CPU not defined"»
Т.е. вылезает 2 такие ошибки ?
Реклама
Аватара пользователя
Аlex
Модератор
Сообщения: 4614
Зарегистрирован: Чт мар 18, 2010 23:09:57
Откуда: Планета Земля
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Аlex »

А, понял... Не нравится 2 слова error в одной строке ?
Я просто не понял вопроса, думал вылезает несколько таких ошибок :)
Реклама
Аватара пользователя
ARV
Ум, честь и совесть. И скромность.
Сообщения: 18546
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение ARV »

Gudd-Head писал(а):
ARV писал(а):3. следить за аппаратным стеком (если он есть), т.е. свести обращения к функциям к минимуму.
В 10-й тиньке нет стэка. Как тогда вызывать функции и работать в прерываниях?? :shock:
да есть там ОЗУ, аж целых 32 байта! :) не очень понял, как там с регистрами X,Y и Z дело обстоит, но получается, вполне все нормально - очень аккуратно все делать и нет проблем. static функции компилятор с вероятностью 90% проинлайнит, поэтому расхода стека не будет. а с прерываниями очень осторожненько :)))
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: WinAvr в вопросах и ответах

Сообщение Gudd-Head »

ARV писал(а):да есть там ОЗУ, аж целых 32 байта!
Так это 32 регистра, как я понял. Бл., в первом и втором симуляторе 4-й студии нет 10-й Тиньки :facepalm:
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Pink-Pank »

В какой-то из Тинек отдельный аппаратный стек на 3 уровня. Может, в 10-й тоже самое?
Fucking static initialization order fiasco
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: WinAvr в вопросах и ответах

Сообщение Gudd-Head »

Хрен его знает, SRAM-то у неё на карте (памяти) есть. Регистр указателя стэка (2 байта) в 10-й с завода идёт установленным на RAMEND, а в 4-й студии её нет ни в первом, ни во втором симуляторе чтобы посмотреть :facepalm:
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Pink-Pank »

А что, даташит скачать никак? Вот ссылка
СпойлерИзображение
32 байта у нее SRAM. А основных регистров всего 16. r16-r31. И по всему видимому, адресовать их командой sts, к примеру, уже не получится. Их вынесли в отдельную область памяти. Странно, что два регистра используются для указания стека. Возможно, просто с замахом на будущее сделали.
Вложения
Memory.png
(55.71 КБ) 611 скачиваний
Fucking static initialization order fiasco
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: WinAvr в вопросах и ответах

Сообщение Gudd-Head »

Pink-Pank писал(а):32 байта у нее SRAM. А основных регистров всего 16. r16-r31.
Так эти регистры входят в SRAM, или они отдельно?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Pink-Pank »

В даташите точной информации не нашел, но судя по картинке, что я вложил - они вообще отдельным регистровым файлом. Думаю, проверить это не слишком сложно? Всего-то пару ассемблерных команд. ;)

Вот, к примеру, карта памяти "стандартной" меги. Тут четко нарисовано, что куда входит.
СпойлерИзображение
Вложения
1.png
(41.3 КБ) 569 скачиваний
Последний раз редактировалось Pink-Pank Пт окт 10, 2014 09:12:27, всего редактировалось 2 раза.
Fucking static initialization order fiasco
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: WinAvr в вопросах и ответах

Сообщение Gudd-Head »

Pink-Pank писал(а):В даташите точной информации не нашел
Зачем тогда тыкать носом в ДШ? Самый умный, что ли?
Pink-Pank писал(а):Думаю, проверить это не слишком сложно?
Как раз-таки проблема. В симуляторе 4-й студии этой тиньки нет, а самого МК нет у меня.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Pink-Pank »

Нахуя тогда тыкать носом в ДШ? Самый умный, что ли?
Две картиночки видишь? Найти 10 отличий сможешь?

В конце концов, если есть камень - возьми и проверь - делов на 5 минут
Как раз-таки проблема. В симуляторе 4-й студии этой тиньки нет, а самого МК нет у меня.
Но ты же планируешь что-то на нем делать? Т.е. макет тебе все равно понадобиться! Стоит задуматься о приобретении комплектухи! ;)
Fucking static initialization order fiasco
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: WinAvr в вопросах и ответах

Сообщение Gudd-Head »

Вот, к примеру, карта памяти "стандартной" меги.
А здесь нестандартная Тинька. Карту памяти мег и нормальных тинек я знаю.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Pink-Pank »

Так если смотреть ДШ, то у этой нестандартной адресация периферии начинается с 0-го адреса. И нет двойных адресов, как в "нормальных" тиньках и мегах. И в картинке карты памяти, что разрабы нарисовали никакого упоминания о регистровом файле нет. Тогда где же они? Скорее всего отдельно. Встроены в АЛУ с прямым доступом. В конце концов, напиши Атмеловцам через гугл-переводчик. Сам недавно обращался - примерно в течение недели отвечают стабильно. Сколько уже твой вопрос висит? ;)
Fucking static initialization order fiasco
Аватара пользователя
Gudd-Head
Друг Кота
Сообщения: 20092
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Re: WinAvr в вопросах и ответах

Сообщение Gudd-Head »

Ладно, заканчиваем флудить. Необходимость использовать эту козявку у меня отпала.
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Alexeyslav
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Alexeyslav »

Как же нет? Там только регистровый файл и имеется с 32 РОН-ами, собственно это и есть вся RAM контроллера.
Аватара пользователя
Pink-Pank
Опытный кот
Сообщения: 721
Зарегистрирован: Ср июн 11, 2014 09:43:13
Откуда: США
Контактная информация:

Re: WinAvr в вопросах и ответах

Сообщение Pink-Pank »

Регистров там всего 16
Fucking static initialization order fiasco
Ответить

Вернуться в «AVR»