|
WinAVR-20071221 и AVR Studio 4.13 SP2 Final, новые релизы программ |
|
|
|
Dec 21 2007, 19:35
|
Частый гость
 
Группа: Свой
Сообщений: 106
Регистрация: 13-05-05
Пользователь №: 4 977

|
WinAVR-20071221 hxxp://sourceforge.net/project/showfiles.php?group_id=68108 Что нового: - Added support for these devices: AT90PWM216, AT90PWM316, ATtiny43U, ATtiny48, ATtiny88, AT90PWM2B, AT90PWM3B, ATmega48P, ATmega88P, ATmega168P, ATmega328P, ATmega1284P, ATmega32HVB
- Binutils 2.18 - New version.
- GCC 4.2.2 - New version.
- avr-libc 1.6.0 - New version.
- avrdude 5.5 - New version.
- GDB / Insight 6.6 - New version.
- AVaRICE 2.7 - New version.
- SRecord 1.37 - New version.
AVR Studio 4.13 SP2(b571) hxxp://www.atmel.com/dyn/resources/prod_documents/AVRStudio4.13SP2.exe - ATmega32HVB, ATmega1284P, ATtiny48, ATtiny43U.
- Full support for the new STK600 starter kit, including programming front-end and command line tools.
- New devices in Simulator V2: ATmega164P, ATmega324P, ATmega644P, ATmega1284P, ATmega48P, ATmega88P, ATmega168P, ATmega328P, ATmega32HVB, ATtiny48 and ATtiny43U.
- ELF production file format support.
- Several enhancements in the IO view.
- and many more...
|
|
|
|
|
 |
Ответов
|
Dec 22 2007, 10:32
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(haker_fox @ Dec 22 2007, 03:55)  Судя по дате, продукт недавний. Как у него на счет стабильности? Т.е. если я использую, например scmRTOS, то все функции-процессы можно объявлять с атрибутом OS_task? Скорее всего да, но я не работал с scmRTOS, а глянув на исходники не нашeл там порта на GCC. общее правило такое, если код вызывающий функцию-процесс не расчитывает на то что регистры r2-r15, r28-r29 сохранят свое значение после возврата из этой функции, то эту функция можно объявлять с атрибутом 'OS_task'.
Сообщение отредактировал aesok - Dec 22 2007, 10:32
|
|
|
|
|
Dec 22 2007, 12:00
|

Нечётный пользователь.
     
Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417

|
Цитата(aesok @ Dec 22 2007, 12:32)  Скорее всего да, но я не работал с scmRTOS, а глянув на исходники не нашeл там порта на GCC. Он там пока в репозитории в branches/avreal лежит. Нужно ещё очень внимательно проверить. Но пользоваться уже можно. Да её и раньше портировали "частным порядком", там немного работы. Цитата общее правило такое, если код вызывающий функцию-процесс не расчитывает на то что регистры r2-r15, r28-r29 сохранят свое значение после возврата из этой функции, то эту функция можно объявлять с атрибутом 'OS_task'. И всё же как по моему вопросу - соотношению атрибутов OS_task и noreturn ? Правильно ли я понимаю, что OS_task это старый добрый noreturn минус подавление генерации команды ret и проверка компилятором построения функции как действительно никогад не возвращающей управления? Похоже, что для процессов scmRTOS правильнее применять noreturn, а OS_task оставить для тех ОС, в которых процесс может прекратить существование путём возврата из основной функции процесса.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Dec 22 2007, 12:25
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(ReAl @ Dec 22 2007, 15:00)  И всё же как по моему вопросу - соотношению атрибутов OS_task и noreturn ?
Правильно ли я понимаю, что OS_task это старый добрый noreturn минус подавление генерации команды ret и проверка компилятором построения функции как действительно никогад не возвращающей управления? Я перичитал описание атрибута 'noreturn' - основное его предназначение позволить компилятору оптимизировать вызывающию функцию, и не генерировать в ней код после вызова функции с атрибутом 'noreturn'. Как компилятор должен/может оптимизировать саму функцию к которой применен атрибут 'noreturn' надо посмотреть. Атрибут "OS_task" (OS_main) заставляет компилятор генерировать специальные версии пролога и эпилога для указанной функции. Эта функция перестает соответствовать соглашениям о вызове функций в С, и не должна вызываться из С кода. Цитата Похоже, что для процессов scmRTOS правильнее применять noreturn, а OS_task оставить для тех ОС, в которых процесс может прекратить существование путём возврата из основной функции процесса. 'noreturn' ничего не даст кроме предупреждения компилятора, если функция функция всетаки возвращает управление. Компилятор не сможет оптимизировать вызывающий код, он же написан в ассемблере. Для функции с OS_task генерируються более эффективные пролог и эпилог, если функция не не возвращается, то эпилог не генерируеться. Анатолий. PS: Для тех кто не знаком с терминами пролог и эпилог: пролог - код выполняемый до начала тала функции, сохраняет 'call-saved' реистры и выделяет место в стеке для локальных переменных. эпилог - код выполняемый после тала функции, востанавливает 'call-saved' реистры, освобождает место в стеке выделеное в прологе и выполняет команду 'RET'. Анатолий.
Сообщение отредактировал aesok - Dec 22 2007, 13:09
|
|
|
|
|
Dec 22 2007, 20:05
|
Знающий
   
Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484

|
Цитата(aesok @ Dec 22 2007, 15:25)  Цитата И всё же как по моему вопросу - соотношению атрибутов OS_task и noreturn ? Правильно ли я понимаю, что OS_task это старый добрый noreturn минус подавление генерации > команды ret и проверка компилятором построения функции как действительно никогад не возвращающей управления?
Я перичитал описание атрибута 'noreturn' - основное его предназначение позволить компилятору оптимизировать вызывающию функцию, и не генерировать в ней код после вызова функции с атрибутом 'noreturn'. Как компилятор должен/может оптимизировать саму функцию к которой применен атрибут 'noreturn' надо посмотреть. Разница между "noreturn' и 'OS_task' есть: первый предотвращает сохранение регстров r2-r15, второй дополнительно r28-r29. Ну и само сабой 'OS_task' работает для всех функций, вне зависимости от того возвращают они управление или нет. Анатолий.
|
|
|
|
Сообщений в этой теме
Alex_NEMO WinAVR-20071221 и AVR Studio 4.13 SP2 Final Dec 21 2007, 19:35 aesok В версию avr-gcc из WinAVR-20071221 добавлены два ... Dec 21 2007, 21:07 ReAl Цитата(aesok @ Dec 21 2007, 23:07) Функци... Dec 22 2007, 08:27     Сергей Борщ Есть еще вопрос по "noreturn" с main() в... Dec 22 2007, 22:57    ReAl Цитата(aesok @ Dec 22 2007, 14:25) 'n... Dec 23 2007, 07:13     Сергей Борщ Цитата(ReAl @ Dec 23 2007, 09:13) но ... Dec 23 2007, 10:37     aesok Цитата(ReAl @ Dec 23 2007, 10:13) Более р... Dec 24 2007, 09:25 sla000 Кроме того добавлена поддержка языка Ада.
Кто шар... Dec 22 2007, 03:29 _Алекс Не могу второй день скачать сервис пак AVR Studio ... Dec 23 2007, 12:52 designer Нормально скачалось. Dec 23 2007, 20:02 733259 А чем OS_main отличается от __attribute__((naked))... Dec 24 2007, 18:49 aesok Цитата(733259 @ Dec 24 2007, 21:49) А чем... Dec 24 2007, 21:39 733259 Цитата(aesok @ Dec 25 2007, 02:39) Дело в... Dec 25 2007, 04:29 Qwertty Цитата(733259 @ Dec 25 2007, 07:29) Выкид... Dec 25 2007, 05:36 singlskv Цитата(733259 @ Dec 25 2007, 07:29) Выкид... Dec 26 2007, 19:35  Сергей Борщ Цитата(singlskv @ Dec 26 2007, 21:35) Хот... Dec 26 2007, 19:41   singlskv Цитата(Сергей Борщ @ Dec 26 2007, 22:41) ... Dec 26 2007, 19:52    Сергей Борщ Цитата(singlskv @ Dec 26 2007, 21:52) Я н... Dec 27 2007, 01:52     singlskv Цитата(Сергей Борщ @ Dec 27 2007, 04:52) ... Dec 27 2007, 11:55     aesok Цитата(Сергей Борщ @ Dec 27 2007, 04:52) ... Dec 27 2007, 13:17 733259 ЦитатаЯ вот тоже попробовал naked, и прошло нормал... Dec 25 2007, 05:48 Qwertty Цитата(733259 @ Dec 25 2007, 08:48) А мож... Dec 25 2007, 05:58 733259 Цитата(Qwertty @ Dec 25 2007, 10:58) stat... Dec 25 2007, 06:13 Qwertty Цитата(733259 @ Dec 25 2007, 09:13) Это я... Dec 25 2007, 06:18 733259 Согласен, только чем отличается переменная static ... Dec 25 2007, 07:09 Qwertty Цитата(733259 @ Dec 25 2007, 10:09) Согла... Dec 25 2007, 09:39 aesok Цитата(733259 @ Dec 25 2007, 10:09) ЗЫ: с... Dec 25 2007, 10:04 733259 ЦитатаРазличие в том, где она создается. Локальная... Dec 25 2007, 10:18 aesok Цитата(733259 @ Dec 25 2007, 13:18) Да яс... Dec 25 2007, 10:25 ivainc1789 Посмотрите, плиз, во втором сервис-паке Студии пер... Dec 26 2007, 14:38 Visor Беда какая-то, при старте отладки проекта WinAVR, ... Dec 26 2007, 18:48 733259 ЦитатаХотелось бы от Вас услышать в каком варианте... Dec 27 2007, 02:03 Сергей Борщ Цитата(733259 @ Dec 27 2007, 04:03) По пр... Dec 27 2007, 12:34  singlskv Цитата(Сергей Борщ @ Dec 27 2007, 15:34) ... Dec 27 2007, 16:50 733259 ЦитатаОн проверен на 20060421.Мы обсуждаем здесь к... Dec 27 2007, 13:21 733259 ЦитатаДык в 20060421 оно и так с naked глючит т.к.... Dec 27 2007, 16:56 singlskv Цитата(733259 @ Dec 27 2007, 19:56) Вы вм... Dec 27 2007, 17:02  aesok Вот минимальный нерабочий пример:
Код__attribute__... Dec 27 2007, 18:47   singlskv Цитата(aesok @ Dec 27 2007, 21:47) Здесь ... Dec 27 2007, 19:13    aesok Цитата(singlskv @ Dec 27 2007, 22:13) ИМХ... Dec 27 2007, 19:38     singlskv Цитата(aesok @ Dec 27 2007, 22:38) Если ф... Dec 27 2007, 19:51      aesok Цитата(singlskv @ Dec 27 2007, 22:51) Я и... Dec 27 2007, 19:58       singlskv Цитата(aesok @ Dec 27 2007, 22:58) Я писа... Dec 27 2007, 20:18 733259 Ааа, переменные не влазят. Однозначно признак плох... Dec 27 2007, 17:55 733259 ЦитатаВы предлагаете объявлять все переменные в ... Dec 27 2007, 19:07 aesok Цитата(733259 @ Dec 27 2007, 22:07) И что... Dec 27 2007, 19:12 singlskv Цитата(733259 @ Dec 27 2007, 22:07) Я гов... Dec 27 2007, 19:26 733259 ЦитатаНичего не помешает, только перед тем как вы ... Dec 27 2007, 19:24 733259 А по теме - кто нибудь использует avr-gcc четвёрку... Dec 27 2007, 19:33 733259 В init2 Y устанавливается на вершину стека. И что ... Dec 28 2007, 01:34 Qwertty Решил приобщиться к прогрессу, обновил ГЦЦ с 3.4.6... Jan 13 2008, 16:59 aesok Цитата(Qwertty @ Jan 13 2008, 19:59) Поп... Jan 13 2008, 22:52 Непомнящий Евгений Не совсем понял - зачем ломать копья из-за main? О... Jan 14 2008, 07:11 aesok Цитата(Непомнящий Евгений @ Jan 14 2008, 10... Jan 14 2008, 09:43 733259 Цитата(Непомнящий Евгений @ Jan 14 2008, 12... Jan 14 2008, 09:25
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|