Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Помогите начать работать с ARM7 Atmel
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Страницы: 1, 2
Lisitsin
Здравствуйте.
Долго работал с RISK микроконтроллерами Atmel. Чувствую, вот оно, пришло время осваивать ARM !!!
В связи с этим прошу помощи, а именно:
1) нужна среда разработки. (В смысле где можно скачать). Конкретно интересно под AT91SAM7x. .
2) простейший программатор (схема, софт)
3) ну и назидательные советы, направляющие на путь истинный )))
Спасибо !!!
_Артём_
Цитата(Lisitsin @ Oct 13 2012, 18:13) *
В связи с этим прошу помощи, а именно:
1) нужна среда разработки. (В смысле где можно скачать). Конкретно интересно под AT91SAM7x. .
2) простейший программатор (схема, софт)

1) Keil, IAR, Eclipse.
2) Atmel SAM-ICE - но это наверное не самый дешёвый.

Цитата(Lisitsin @ Oct 13 2012, 18:13) *
3) ну и назидательные советы, направляющие на путь истинный )))

Зачем нужно начинать освоение с устаревшей архитектуры? Потому что есть плата с установленным SAM7?

Чем Cortex не устраивает? К тому же они проще...


prottoss
Цитата(Lisitsin @ Oct 13 2012, 21:13) *
Здравствуйте.

1. Уже выше посоветовали.
2. Вместо SAM-ICE подойдет JLINK, к тому же в разделе по ARM нетленна ветка по самостоятельному изготовлению JLINK.
3. Купите какую нить девборду, курите даташиты, спрашивайте вопросы sm.gif
Lisitsin
Цитата(_Артём_ @ Oct 13 2012, 20:02) *
1) Keil, IAR, Eclipse.
2) Atmel SAM-ICE - но это наверное не самый дешёвый.
Чем Cortex не устраивает? К тому же они проще...

1 - а где скачать то можно?
2 - мне бы самодельный сделать, для внутрисхемного программирования ... Есть где-нибудь схемки?
3 - Cortex - а что это, простите за глупый вопрос ... ?

Цитата(prottoss @ Oct 13 2012, 20:22) *
1. Уже выше посоветовали.
2. Вместо SAM-ICE подойдет JLINK, к тому же в разделе по ARM нетленна ветка по самостоятельному изготовлению JLINK.
3. Купите какую нить девборду, курите даташиты, спрашивайте вопросы sm.gif

2 - JLINK - а где веточку то посмотреть можно?
3 - да я ARM изучаю собственно уже с ориентацией на конкретный проект, так что борд не нужен, сразу лепить буду ...

Ещё вопросец: скачал дистрибутив Atmel Studio 6.0. что сие есть? Можно в нём работать под ARM7?
prottoss
Цитата(Lisitsin @ Oct 13 2012, 22:36) *
2 - JLINK - а где веточку то посмотреть можно?
Я же казал Вам - поищите в разделе ARM

Цитата(Lisitsin @ Oct 13 2012, 22:36) *
скачал дистрибутив Atmel Studio 6.0. что сие есть? Можно в нём работать под ARM7?
Нет. Можно работать с ATMEL SAM3 (Cortex™ M3)
SyncLair
Цитата(Lisitsin @ Oct 13 2012, 20:36) *
3 - Cortex - а что это, простите за глупый вопрос ... ?

Вы простите за глупый вопрос когда на сайт производителя каких-нибудь контроллеров в последний раз заходили? гда три четыре назад? Это вообще то новое ядро АРМ
_Артём_
Цитата(Lisitsin @ Oct 13 2012, 19:36) *
1 - а где скачать то можно?

www.iar.com
www.keil.com

Есть ещё ARMGCC. Скачать можно, например тут:
www.yagarto.de
там же есть eclipse и примеры для разных АРМов.

Цитата(Lisitsin @ Oct 13 2012, 19:36) *
2 - мне бы самодельный сделать, для внутрисхемного программирования ... Есть где-нибудь схемки?

Говорят клоны jlink-а можно дешего купить.

Цитата(Lisitsin @ Oct 13 2012, 19:36) *
3 - Cortex - а что это, простите за глупый вопрос ... ?

Ну вы даёте...

Цитата(Lisitsin @ Oct 13 2012, 19:36) *
Ещё вопросец: скачал дистрибутив Atmel Studio 6.0. что сие есть? Можно в нём работать под ARM7?

Как это не странно - нет.
Хотя использовать как редактор и компилятор наверное можно. Но отлаживать не выйдет.

Fedor
Цитата(Lisitsin @ Oct 13 2012, 21:13) *
Здравствуйте.
Долго работал с RISK микроконтроллерами Atmel. Чувствую, вот оно, пришло время осваивать ARM !!!
В связи с этим прошу помощи, а именно:
1) нужна среда разработки. (В смысле где можно скачать). Конкретно интересно под AT91SAM7x. .
2) простейший программатор (схема, софт)
3) ну и назидательные советы, направляющие на путь истинный )))
Спасибо !!!

Cortex описание
http://www.gaw.ru/html.cgi/txt/doc/micros/...x_arh/index.htm
много готовых отладочных плат www.terraelectronica.ru в том числе с интегрировнными программаторами
вообще с армами по сравнению с тем что было лет пять назад, просто сказка
все можно почти за бесплатно получить
Если завяжитесь с кортексами от stm то пряма там в их софтовой либе можно посмотреть отладчики и ide под которые они портируют свой софт и выбрать что понравится
Удачи
Lisitsin
Цитата(Fedor @ Oct 13 2012, 21:49) *
Cortex

Действительно, Cortex M3 лучше. Сейчас даже четвёртые пошли. Но вот только не могу найти полные Datasheetы ни на один контроллер, например,STM32F417. Где бы можно накачать?

Цитата(SyncLair @ Oct 13 2012, 21:11) *
Вы простите за глупый вопрос когда на сайт производителя каких-нибудь контроллеров в последний раз заходили? гда три четыре назад? Это вообще то новое ядро АРМ

Да я вообще кроме RISK ничего то и не видел ... )))
Xenia
Цитата(Lisitsin @ Oct 13 2012, 22:12) *
Но вот только не могу найти полные Datasheetы ни на один контроллер, например,STM32F417. Где бы можно накачать?


http://www.st.com/internet/mcu/subclass/1521.jsp
http://www.st.com/internet/com/TECHNICAL_R.../DM00035129.pdf
http://www.st.com/internet/com/TECHNICAL_R.../DM00031020.pdf
Lisitsin
Цитата(Xenia @ Oct 13 2012, 22:18) *

Ну так они ж все сокращённые ... Ознакомительные типа )))
Xenia
Цитата(Lisitsin @ Oct 13 2012, 22:21) *
Ну так они ж все сокращённые ... Ознакомительные типа


А третья ссылка, которую я чуть позже добавилва, тоже не то?

К тому, кто найдет более полные, просьба свистнуть мне - собираю даташиты на МК по зову души и долгу службы (как библиотекарь ftp).
Lisitsin
Цитата(Xenia @ Oct 13 2012, 22:26) *
К тому, кто найдет более полные, просьба свитнуть мне - собираю даташиты на МК по зову души и долгу службы (как библиотекарь ftp).

Ну и как с ними вообще тогда работать?
Xenia
Цитата(Lisitsin @ Oct 13 2012, 22:30) *
Ну и как с ними вообще тогда работать?


А я с ними и не работаю, а только даташиты на них собираю. sm.gif
prottoss
Цитата(Lisitsin @ Oct 14 2012, 00:12) *
Да я вообще кроме RISK ничего то и не видел ... )))
Вообще пишется RISC - Reduced Instruction Set Computer
_Артём_
Цитата(Lisitsin @ Oct 13 2012, 21:12) *
Да я вообще кроме RISK ничего то и не видел ... )))

Наверное все же RISC.

PS. ARM = Advanced RISC Machine.

prottoss
Цитата(Xenia @ Oct 14 2012, 00:26) *
К тому, кто найдет более полные, просьба свитнуть мне - собираю даташиты на МК по зову души и долгу службы (как библиотекарь ftp).
Свищу - atmel.com, st.com, ti.com... e.t.c.
Fedor
"Полные" даташиты
http://www.arm.com/products/processors/cortex-m/index.php
вкладка resources
Даашиты по конкретному IC с пенриферией уже прислали см. выше по ветке
хорошая тема по настройке eclips для кортекса от stm
http://makesystem.net/?p=988
Genadi Zawidowski
Небольшая история про то, как я за одну ночь с AVR на ARM перешёл... http://www.cqham.ru/forum/showthread.php?t=11357
Lisitsin
Цитата(Xenia @ Oct 13 2012, 22:26) *
К тому, кто найдет более полные, просьба свитнуть мне - собираю даташиты на МК по зову души и долгу службы (как библиотекарь ftp).

На Atmel Cortex M4 не надо?
http://catalog.gaw.ru/index.php?page=compo...il&id=66763
Xenia
Цитата(Genadi Zawidowski @ Oct 14 2012, 01:30) *
Небольшая история про то, как я за одну ночь с AVR на ARM перешёл... http://www.cqham.ru/forum/showthread.php?t=11357


А чего вы тогда на AVR32 не перешли? Было бы логичнее.
Lisitsin
Цитата(wangan @ Oct 14 2012, 07:22) *

Спосибо огромное, но я тут по-моему уже в Cortex M4 от Atmel влюбился. Ночь провёл совершенно бессонную ...
http://catalog.gaw.ru/index.php?page=compo...il&id=61016
Вот где бы теперь под неё студию нарыть ...
Xenia
Цитата(Lisitsin @ Oct 14 2012, 08:28) *
Вот где бы теперь под неё студию нарыть ...


Вот уж не проблема с тех пор, как Atmel Studio 6 стала поддерживать не только AVR, но и ARM контроллеры фирмы Atmel. Прямые ссылки на продукт (без регистрации) приведены на странице вот этого немецкого сайта:
http://www.mikrocontroller.net/articles/Atmel_Studio
(секция Downloads)
Lisitsin
Цитата(Xenia @ Oct 14 2012, 10:13) *
Вот уж не проблема с тех пор, как Atmel Studio 6 стала поддерживать не только AVR, но и ARM контроллеры фирмы Atmel. Прямые ссылки на продукт (без регистрации) приведены на странице вот этого немецкого сайта:
http://www.mikrocontroller.net/articles/Atmel_Studio
(секция Downloads)

Спасибо огромное, по-поему то, что надо.
Genadi Zawidowski
Цитата(Xenia @ Oct 14 2012, 01:44) *
А чего вы тогда на AVR32 не перешли? Было бы логичнее.

Удивитесь... У нас тогда AVR32 в продаже отсутствовали - так, чтобы пришёл и купил.
И дополню - AVR32 ничем из того, что можно сделать "на коленке" не прошить, а AT91SAM7S32 я шил WIGGLER-ом, а потом STK-200 (с помощью h-jtag).
alx2
Цитата(Lisitsin @ Oct 13 2012, 21:36) *
2 - мне бы самодельный сделать, для внутрисхемного программирования ... Есть где-нибудь схемки?

Простите, а зачем для sam7 "делать" программатор? Насколько я помню, в этих контроллерах уже есть прошитый на заводе загрузчик (SAM_BA boot), и для их внутрисхемного программирования нужна только программа SAM-BA (лежит на сайте Атмела), которая программирует контроллер по RS232 и (или) USB...
prottoss
Цитата(alx2 @ Oct 15 2012, 10:50) *
Простите, а зачем для sam7 "делать" программатор?
За тем, что это не очень быстро. А во вторых отладчик на первых порах ой как нужен будет. Это справедливо и для кортексов.
_Pasha
Цитата(Xenia @ Oct 14 2012, 09:13) *
Вот уж не проблема с тех пор, как Atmel Studio 6 стала поддерживать не только AVR, но и ARM контроллеры

Не подскажете, как у них там дела с симулятором? Не хуже Кейла для AT91?
prottoss
Цитата(_Pasha @ Oct 15 2012, 13:21) *
Не подскажете, как у них там дела с симулятором? Не хуже Кейла для AT91?
На сколько я понимаю из информации на сайте ATMEL AVRStudio поддерживает только микроконтроллеры Cortex. Т.е. серия AT91 в список поддерживаемых не входит.
Lisitsin
Цитата(_Pasha @ Oct 15 2012, 11:21) *
Не подскажете, как у них там дела с симулятором? Не хуже Кейла для AT91?

Чёт симулятор не включается для Cortex M4. Хотя компилировать компилирует.

Люди добрые, а существует вообще в природе asm для Cortex??? Или мне C учить ???????
prottoss
Цитата(Lisitsin @ Oct 15 2012, 23:05) *
Чёт симулятор не включается для Cortex M4. Хотя компилировать компилирует.
Люди добрые, а существует вообще в природе asm для Cortex??? Или мне C учить ???????
Можете и на ассемблере. Вижу для Вас плевое дело. Вот тут качайте - http://infocenter.arm.com/help/index.jsp?t...g/Cfaggajd.html
Lisitsin
Цитата(prottoss @ Oct 15 2012, 21:18) *
Можете и на ассемблере. Вижу для Вас плевое дело. Вот тут качайте - http://infocenter.arm.com/help/index.jsp?t...g/Cfaggajd.html

Да я про компилятор ...
_Pasha
Цитата(Lisitsin @ Oct 15 2012, 20:05) *
Чёт симулятор не включается для Cortex M4. Хотя компилировать компилирует.
Люди добрые, а существует вообще в природе asm для Cortex??? Или мне C учить ???????

Это в Atmel Studio? Ага, понятненько. Спасибо.
Насчет асма.
Вы на этом этапе крепко сравните между gas(из GCC для армов) и тот, что кейловский. Имея в виду вопрос, как не подсаживаться на особенности синтаксиса того и другого.
_Артём_
Цитата(Lisitsin @ Oct 15 2012, 20:05) *
Чёт симулятор не включается для Cortex M4. Хотя компилировать компилирует.

Наверняка потому что нет его - отладка только через атмеловский j-link.

Цитата(Lisitsin @ Oct 15 2012, 20:05) *
Люди добрые, а существует вообще в природе asm для Cortex??? Или мне C учить ???????

Зачем вам асм в чистом виде?

Цитата(Lisitsin @ Oct 15 2012, 20:05) *
Или мне C учить ???????

Конечно, как иначе. Но GCC допускает использование inline assembler-а.
prottoss
Цитата(Lisitsin @ Oct 15 2012, 23:39) *
Да я про компилятор ...
Там же, по моему и компилятор можно скачать.
_Pasha
Цитата(_Артём_ @ Oct 15 2012, 21:04) *
Конечно, как иначе. Но GCC допускает использование inline assembler-а.

Что значит "допускает"? 8) А файлы *.S ?
А в этом инлайне разобраться - лучше нинада sm.gif ужос.
_Артём_
Цитата(_Pasha @ Oct 15 2012, 21:08) *
Что значит "допускает"? 8)

Ну, можно пару строк в С-файле черкануть.

Цитата(_Pasha @ Oct 15 2012, 21:08) *
А в этом инлайне разобраться - лучше нинада sm.gif ужос.

Я не пробовал - не нужно было.
Что лучше всю программу сразу в S-файлах писать? Вот где ужос.
_Pasha
Цитата(_Артём_ @ Oct 15 2012, 21:16) *
Что лучше всю программу сразу в S-файлах писать? Вот где ужос.

Дык она там в 80% случаях на байт-код будет похожа: таблицы, таблицы ...
Ничего ужасного, дело вкуса.
Писанины поболее, - это такида, но блин, цмсис тоже подзадолбал своим графоманством.
_Артём_
Цитата(_Pasha @ Oct 15 2012, 21:24) *
Дык она там в 80% случаях на байт-код будет похожа: таблицы, таблицы ...

Таблицы? Не представил...

Цитата(_Pasha @ Oct 15 2012, 21:24) *
цмсис тоже подзадолбал своим графоманством.

Не мспользуйте cmsis, никто же не заставляет.
_Pasha
Цитата(_Артём_ @ Oct 15 2012, 21:31) *
Таблицы? Не представил...

Оно всегда распадается на три резко контрастирующие части:
- быстрые подпрограммы - тут всё ясно,
- движок для тредов, тсз, недо-ось,
- медленный интерпретатор для работы с верхней логикой, - тут можно изголяться от макросов, конструирующих байт-код, до собственного языка, с символьным входным потоком
Тут и - сценарии инициализации периферии - пары <смещение>:<значение>,
и таблицы параметров для "общения" с внешним миром, итераторы всевозможные- с описанием работы в виде таблицы <адрес пп>:<адрес перехода, если пп вернула==0>:<адрес перехода если !=0>, причем адреса - короткие, в байт шириной, только зачем это всё - чем дальше, тем непонятнее, - кругом велосипеды sm.gif .
_Артём_
Цитата(_Pasha @ Oct 15 2012, 22:04) *
Оно всегда распадается на три резко контрастирующие части:
- быстрые подпрограммы - тут всё ясно,
- движок для тредов, тсз, недо-ось,
- медленный интерпретатор для работы с верхней логикой, - тут можно изголяться от макросов, конструирующих байт-код, до собственного языка, с символьным входным потоком
Тут и - сценарии инициализации периферии - пары <смещение>:<значение>,
и таблицы параметров для "общения" с внешним миром, итераторы всевозможные- с описанием работы в виде таблицы <адрес пп>:<адрес перехода, если пп вернула==0>:<адрес перехода если !=0>, причем адреса - короткие, в байт шириной, только зачем это всё - чем дальше, тем непонятнее, - кругом велосипеды sm.gif .

Жесть... И всё на асме? Двойная жесть.
hd44780
Во-во ...
Заморачиваться с асмом надо тогда, когда необходимо выверить быстродействие какого-то куска до какого-нибудь такта или наносекунды и при этом не зависеть от "оптимизаторных" выкрутасов компилятора Си.

А писать на асме, например, функцию strcpy или sprintf, это, извините, маразм.

Цитата(Lisitsin @ Oct 15 2012, 20:05) *
Или мне C учить ???????


Подумайте, что проще - изучить Си, который применяется поголовно на ВСЕХ процах (даже на АВР-ах без RAM laughing.gif ) или очередной ассемблер.
Я не отговариваю Вас от асма, но прикиньте, вы его изучите, допустим для того же Cortex M3, убъёте на это, например, 2 недели. Потом вдруг осознаете, что этот M3 Вас чем-то не устраивает (например, тем что оно гарвардское, а не фон-неймановское), и решите заняться ARM7TDMI. И будете ОПЯТЬ 2 недели учить ассемблер, уже для ARM7TDMI. И т.д. до бесконечности ....
В итоге Вы будете изучать не новые таймеры, АЦП и прочие плюшки нового контроллера, а то, как запрограммировать ( a + b ) / c, потому как
mov ax, a
mov bx, b
mov dx, c
add ax, bx
div dx
будет работать на 8086, а на AVR или Cortex M3 это всё надо переписывать в силу того, что регистров ax, bx, dx там нету (но есть какие-то другие) и делить оно само не умеет (AVR точно не умеет, M3 - не знаю sm.gif ) и это опять же надо писать самому.

А любой компилятор Си подобные "уравнения" понимает от рождения и переписывать их каждый раз не нужно. И можно заниматься делом, а не арифметикой. А арифметикой заняться когда того потребует тот или иной конкретный проект.

Это моё мнение, как человека, писавшего программы для Z80, 80x86, x51, AVR и теперь на ARM (AT91SAM7).
prottoss
Цитата(hd44780 @ Oct 16 2012, 15:45) *
...но прикиньте, вы его изучите, допустим для того же Cortex M3, убъёте на это, например, 2 недели...
Гыыы... ржунемогу. Мож за два месяца? Или за год? sm.gif

На самом деле Си нужно курить-изучать. Потому как переносимость - главное. Т.е. как говорилось выше, написали программу для одной платформы, а через полгода можно этот же кусок с минимумом исправлений перетащит на совершенно другую платформу, если есть под нее Си компилятор. А он обязательно есть!

Второй момент, что 50% программы это не работа с портами ВВ а что то более осмысленное, которое, при определенном навыке, вообще можно отладить на компиляторе для РС, т.е. на х86.
_Pasha
Цитата(hd44780 @ Oct 16 2012, 12:45) *
Во-во ...
Заморачиваться с асмом надо тогда, когда


Когда об этом говорят все, начинаешь сомневаться, правда ли это.
Вы думаете, всем нужен sprintf() в таком виде, в котором он есть?
Вы думаете, что гораздо проще "от балды" сидеть на си, не зная ассемблера?
Вы думаете, что все неизбежно пользуются плавучкой? Это еще при том, что в си нету нативной поддержки fixed point, dsp-инструкций и подобного, всегда надо чего-то допиливать.
Повторяю, люди, пишущие на асме, в основном, приходят к виртуальным машинам, пусть примитивным, но устраивающим почему-то.
А в этом деле главное - отстроить движок - всё сразу портируется. Тут еще сторонники форта на ум приходят - тоже есть аналогии в методах работы.

Цитата(prottoss @ Oct 16 2012, 14:04) *
Второй момент, что 50% программы это не работа с портами ВВ а что то более осмысленное, которое, при определенном навыке, вообще можно отладить на компиляторе для РС, т.е. на х86.

Вот это гораздо более весомый аргумент, чем эфемерная переносимость, постоянно вынуждающая к компромиссам.
prottoss
Цитата(_Pasha @ Oct 16 2012, 17:25) *
Вот это гораздо более весомый аргумент, чем эфемерная переносимость, постоянно вынуждающая к компромиссам.
Дак это и есть самый большой плюс переносимости. Потому как для каждой платформы все равно код для работы с портами ВВ, хоть на ассемблере, хоть на Си приходится переписывать. Я называю это драйвером rolleyes.gif
hd44780
Цитата(prottoss @ Oct 16 2012, 14:04) *
Гыыы... ржунемогу. Мож за два месяца? Или за год? sm.gif


Тем более. Лишний аргумент в пользу Си. Про 2 недели я образно выразился. Хотя основы можно и за 2 недели выучить ... Чай ТС не студент, которому в институте только делфи и C# преподавали. Слова типа "регистр" и "косвенно-индексная адресация" его явно в шок не ввергают.

Цитата
Вы думаете, всем нужен sprintf() в таком виде, в котором он есть?

А чем он плох? Тем, что "много лишнего"? Если не нравится, пишите свой, я не против rolleyes.gif . Я не сторонник изобретать новый велосипед, если в старом мне не нравятся одни лишь педали ....

Цитата
Вы думаете, что гораздо проще "от балды" сидеть на си, не зная ассемблера?

Для очень многих задач ассемблер вообще не нужен. Даже на АВРе, который гораздо тормознутее любого АРМа.
Но "и зайца можно научить курить" .....

Цитата
Вы думаете, что все неизбежно пользуются плавучкой? Это еще при том, что в си нету нативной поддержки fixed point, dsp-инструкций и подобного, всегда надо чего-то допиливать.

А при чём здесь "плавучка"? Плавучку как раз лучше на си применять, а не на ассемблере.
Битовых операций в СИ тоже нету. На этот счёт есть "компиляторо-зависимые расширения", типа PORTA.0 в CvAVR или asm вставки, которые тоже одни хвалят, другие ругают почём свет стоит и пишут на GCC общепринятые конструкции типа PORTA|=0x01 ещё и с кучей макросов "для удобства". А потом иди гадай, что там в машинном коде стоит, одна команда типа sbi или or с кучей регистровых пересылок.

Цитата(prottoss @ Oct 16 2012, 14:35) *
Потому как для каждой платформы все равно код для работы с портами ВВ, хоть на ассемблере, хоть на Си приходится переписывать. Я называю это драйвером rolleyes.gif


Согласен на все 100. Сaм стараюсь так писать sm.gif .
_Pasha
Цитата(prottoss @ Oct 16 2012, 14:35) *
Я называю это драйвером rolleyes.gif

Это все красиво, когда нет влияния окружения - оси, или... вот простой пример: есть DMA - нету DMA. Появляется сразу некий средний уровень между HAL и приложением. Игнорировать - гробить ресурсы.

Цитата(hd44780 @ Oct 16 2012, 15:01) *
А чем он плох?

sm.gif Самый правильный ответ: "А чем он хорош?"
Педали там такие, что для разных размещений форматной строки у нас зоопарк функций, и без "много лишнего" - получается вообще ничего, поскольку там все красиво увязано с остальными сущностями stdlib. Лично мне больше нравится printf с хэндлами - вроде как "вес строки" не теряется и не надо дополнительных телодвижений. К тому же, у меня редко, когда тред "стучит" больше чем в один поток ввода-вывода.
Цитата
А при чём здесь "плавучка"? Плавучку как раз лучше на си применять, а не на ассемблере.

Это уже диалог глухих sm.gif
Цитата
Битовых операций в СИ тоже нету. На этот счёт есть "компиляторо-зависимые расширения", типа PORTA.0 в CvAVR или asm вставки, которые тоже одни хвалят, другие ругают почём свет стоит и пишут на GCC общепринятые конструкции типа PORTA|=0x01 ещё и с кучей макросов "для удобства". А потом иди гадай, что там в машинном коде стоит, одна команда типа sbi или or с кучей регистровых пересылок.

А нафига оно надо, чай не 90-е
Код
union _io_register
{
  uint32_t reg;
  struct _io_register_bits
{
    unsigned mux:3;
    unsigned relay:1;
    unsigned shutdn:1;
} bits;
} io_register;
io_register.bits.relay = 1;
io_register.bits=(struct _io_register_bits){.mux=3,.relay=1,.shutdn=1};// вот это долго не все поддерживали
io_register.reg = 0;
prottoss
Цитата(_Pasha @ Oct 16 2012, 18:36) *
Это все красиво, когда нет влияния окружения - оси, или... вот простой пример: есть DMA - нету DMA. Появляется сразу некий средний уровень между HAL и приложением. Игнорировать - гробить ресурсы.
А никто и не игнорирует. Я ж сказал выше - под каждую платформу, в зависимости от требований и архитектуры, пишется драйвер. Есть DMA на Марсе, нет ДМА на Марсе, науке это известно (С) sm.gif
prottoss
Еще один плюс в сторону СИ. Вот сейчас работаю над проектом. В основе XMEGA (заказчик пожелал). Работаю сейчас как раз над HAL. Милое дело sm.gif Пишу на Си. Драйверы под внешние устройства (к примеру AT45DB) имеются. И с DMA и с 'тупо в лоб'. Ну милое дело. Так как я не думаю о том, как передавать параметры из HAL в драйвер DataFlash. Пусть компилер голову греет. Зато я грею голову пивом. И не плохо идет rolleyes.gif biggrin.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.