|
ARM начинающим |
|
|
|
Oct 12 2005, 23:09
|
Группа: Новичок
Сообщений: 2
Регистрация: 19-06-05
Пользователь №: 6 134

|
Мужики. Подскажите плз куда можно почитать по ARM новичку. Я AVR худо-бедно освоил. А вот что такое ARM слабо представляю. Проги писал на асме. Сишник не знаю.
Заранее благодарен.
|
|
|
|
|
 |
Ответов
|
Oct 18 2005, 17:32
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
То же от IAR. Оценивать хорошо это или плохо не бурусь. ARM Код a: DS8 4096 `b`: DS8 4096
copy0: STMDB SP!,{R4-R11} ;; Push MOV R2,#+0x80 ??copy0_0: MOV R3,R1 MOV R12,R0 LDMIA R12,{R4-R11} STMIA R3,{R4-R11} ADD R0,R0,#+0x20 ADD R1,R1,#+0x20 SUBS R2,R2,#+0x1 BNE ??copy0_0 LDMIA SP!,{R4-R11} ;; Pop BX LR ;; return
main: STR LR,[SP, #-4]! ;; Push LDR R0,??main_0 ;; a ADD R1,R0,#+0x1000 BL copy0 LDR LR,[SP], #+0x4 ;; Pop BX LR ;; return ??main_0: DC32 a Thumb Код a: DS8 4096 `b`: DS8 4096 PUSH {R4,LR} MOV R2,#+0x80 ??copy0_0: MOV R4,#+0x20 ??copy0_1: SUB R4,R4,#+0x4 LDR R3,[R0, R4] STR R3,[R1, R4] BNE ??copy0_1 ADD R0,#+0x20 ADD R1,#+0x20 SUB R2,R2,#+0x1 BNE ??copy0_0 POP {R4} POP {R0} BX R0 ;; return
main: PUSH {LR} LDR R0,??main_0 ;; a MOV R1,#+0x80 LSL R1,R1,#+0x5 ;; #+0x1000 ADD R1,R0,R1 BL copy0
POP {R0} BX R0 ;; return NOP ??main_0: DC32 a
|
|
|
|
|
Oct 19 2005, 05:34
|
Участник

Группа: Свой
Сообщений: 72
Регистрация: 8-11-04
Из: Томск
Пользователь №: 1 070

|
А что, писание на асме это "западло"? Я все проекты делаю на асме, потому как видеть что творит С с кодом сил не хватает. В чем С дает выигрыш? Знаю начнете говорить о времени разработки, о переносимости с одного компилятора на другой, так это все ерунда. За время что я работаю у меня накопилось куча функций, которые переходят из одного проекта в другой без изменений (типа арифметика, УАРТ и т.п.) А при переходе с одного компилятора на другой (при том же процессоре) для асм в основном заголовочные файлы меняются ( a equ 10, или equ a,10) - это не долго. Да и зачем на асме переходить из компилера в компилер? За мою практику такой неизбежной необходимости не возникало. Засада конечно переносить проект с одной архитектуры на другую, но для меня "лучше день потерять и за полчаса долеьтеть". И вообще причем тут крылья - главное хвост!
|
|
|
|
|
Oct 19 2005, 10:37
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(iit @ Oct 19 2005, 10:34) А что, писание на асме это "западло"? в общем да Цитата Я все проекты делаю на асме, потому как видеть что творит С с кодом сил не хватает. Много вы видели? Те листинги, что приводились выше, чем ужасают? Цитата В чем С дает выигрыш? Знаю начнете говорить о времени разработки, о переносимости с одного компилятора на другой, так это все ерунда. Не ерунда. Особенно о времени разработки и сопровождаемости. Цитата За время что я работаю у меня накопилось куча функций, которые переходят из одного проекта в другой без изменений (типа арифметика, УАРТ и т.п.) А при переходе с одного компилятора на другой (при том же процессоре) для асм в основном заголовочные файлы меняются ( a equ 10, или equ a,10) - это не долго. Да и зачем на асме переходить из компилера в компилер? За мою практику такой неизбежной необходимости не возникало. Засада конечно переносить проект с одной архитектуры на другую, но для меня "лучше день потерять и за полчаса долеьтеть". И вообще причем тут крылья - главное хвост! а вы знаете, что такое CVS, или SVN? Или тоже неприемлете, покуда нафиг не нужно?
--------------------
Пасу котов...
|
|
|
|
|
Oct 19 2005, 15:22
|
Частый гость
 
Группа: Свой
Сообщений: 101
Регистрация: 4-09-04
Пользователь №: 603

|
Цитата(Andy Mozzhevilov @ Oct 19 2005, 13:37) Цитата(iit @ Oct 19 2005, 10:34) А что, писание на асме это "западло"? в общем да И это есть самый главный ответ. Как я замечал в частных беседах об достоинствах и недостатках "С". Больше всего отстаивают С перед ASM люди не умеющие писать на ASM. Как я понимаю этим они просто оправдывают свою не компитентность. Ибо любому, кто писал на ASM просмотр ASM лиснинга С компилятора приводит в ужас. Единственное оправдание написания программ на С - доступность для понимания программистами заказчика. Потому, если планируется сопровождение передаваемой программы другими программистами, особенно если они не понимают ASM, то писать надо на С.
|
|
|
|
|
Oct 20 2005, 06:22
|

Adept
     
Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343

|
Цитата(NickS @ Oct 19 2005, 21:22) Как я замечал в частных беседах об достоинствах и недостатках "С". Больше всего отстаивают С перед ASM люди не умеющие писать на ASM. Как я понимаю этим они просто оправдывают свою не компитентность. Ой, не смешите! Что там уметь? Взять документацию на проц и сразу начать писать инструкции. Тут вообще никаких знаний обширных не требуется. Именно поэтому асм так популярен среди начинающих. Все электронщинки, имеющие дело с процессорами, прошли этот путь. А вот ЯВУ - это несколько другая песня. Тут в полный рост встают концепции языка, парадигмы программирвания, требуется знать множество нюансов, начиная от синтаксических особенностей и заканчивая привилами преобразований типов. Для того, чтобы знать С, надо прочитать не одну книжку и приобрести приличный практический опыт - я бы оценил не менее года интенсивного писания на языке. Это для С. Для С++ раза в два-три больше. В случае с асмом ничего этого не требуется. Т.ч. перефразируя Вашу мысль - на асме голимом пишут те, кто не знает С, и заявляя, что "только асм, С - для некомпетентных", они прикрывают собственную некомпетентность. Цитата(NickS @ Oct 19 2005, 21:22) Ибо любому, кто писал на ASM просмотр ASM лиснинга С компилятора приводит в ужас. Это, извините, совершенно не соответствует действительности! Даже комментировать не буду такое нелепое замечание. Цитата(NickS @ Oct 19 2005, 21:22) Единственное оправдание написания программ на С - доступность для понимания программистами заказчика. Если человек был в состоянии освоить С, то познакомиться с мнемониками конкретного процессора для него проблемы не составит. Если "программисты заказчика" знают С, а программисты исполнителя не знают, то это означает, что программисты заказчика более квалифицированные кадры. Цитата(NickS @ Oct 19 2005, 21:22) Потому, если планируется сопровождение передаваемой программы другими программистами, особенно если они не понимают ASM, то писать надо на С. Опять мимо. Писать надо на том, что более подходит. Для проектов на МК в целом С более подходит, нежели асм. Есть отдельные случаи, если оправдано, то эти фрагменты следует выполнить на ассемблере. Но не более. Именно об этом Вам и толкуют. Напоследок, дабы у Вас не возникало предположений о компетенции оппонентов, сообщу о своем опыте. Я, как и большинство, железячников, начинал с асма. Были времена, когда писал программы чисто на ассеблере объемом по 3 и более тысячи строк чистого кода (а для сопровождаемости там приходилось комментарии втыкать в изрядном объеме, что увеличивало и объем исходников чуть-ли не в два раза, и работы добавляло - как известно, написание качественного комментария по сложности и трудоемкости соизмеримо с объемом работы по написанию собственно кода). Было это на легендарном MCS-51. Потом появился AVR, и я пересел на него, продолжая работать в том же духе - асм, асм, для облечения жизни - макросы, бо асм у оного МК для ручного писания заметно менее приятный, чем у 51-го. И так бы и продолжал, наверное, еще долгое время асмить, свято веря, что иного пути просто нет. Но тут увидел, как один из корешей (из другой организации) сидит и колупает IAR C (версии 1.30 еще). Я, было, поднял его на смех, типа, грю, чего ты, Мишка, дурака валяешь, кто ж для таких мелких МК на С пишет? А он отвечает, что, типа, вот заодно и узнаем, что там получается. Стали мы вместе смотреть. И вижу я, имеющий уже изрядный опыт асмования, что код (в листинге), сгенеренный компилятором, почти такой же, как я бы и сам написал. И что компилятор просто делает огромное количество тупой работы, которую без него мне приходилось делать самому. Стал тогда уже самостоятельно ковыряться, а заодно и язык учить. Мне здорово повезло - рядом оказались люди, знающие язык и наставившие сразу на пусть истинный, благодаря чему сложилось сразу правильное понимание ключевых моментов языка и правильное отношение к нему как средству для решения задач. С тех пор акцент еще более сместился в сторону С - во-первых, компиляторы стали еще лучше оптимизировать - они стали гораздо толще и более требовательными к ресурсам, но ресуров добавилось немеренно - и памяти, и производительности процессоров, т.ч. разработчики компиляторов сосредоточились на эффектиности кодогенерации, а не на оптимизации потребления ресурсов компилятором. Во-вторых, сами МК стали толще и дешевле - взять хотя бы тот же филипковый АРМ. Я и сегодня не брезгую ассемблером, где он действительно нужен и оправдан. Но таких случаев можно по пальцам пересчитать. Это либо ситуация, где надо задействовать конкретный аппаратные узлы процессора (относится по большей части к DSP), либо какие-то уж сильно платформеннозависимые вещи вроде переключателя контекста в RTOS. Обычный управляющий код, львиная доля которого и составляет программы для МК, прекрасно ложится на С/С++ и оверхед составляет, как уже говорили, 10-30 % (в худших случаях процентов 50). И проистекает не столько из-за плохой якобы кодогенерации, сколько из-за вещей вроде соглашений о вызове и прочих условностях, без которых никакой проект приличных размеров жить не может, безотносительно на каком языке он написан. Что касается оппонента, которого Вы обвинили в некомпетентности, то от себя замечу, что и тут Вы оказались очень мимо кассы: этого человека я знаю давно заочно и не очень давно лично (живем в разных городах), у него очень приличный опыт работы с МК вообще и на ассемблере для них в частности. И прошел он примерно тот же типовой путь, который был описан выше. Можете не сомневаться, с квалификацией в том числе программиста на ассемблере у него все в порядке, и где надо, там пользуется. Но писать сегодня для МК - особенно такого как ARM, - ВСЕ на асме - это или мазохизм, или искусство ради искусства вроде того, как китайцы пишут на раскаленном солнцем бетоне иероглифы кисточкой, смоченной водой. Иероглифы быстро высыхают. Но там цель не написать, а писать чисто из любви к этому процессу.
--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
|
|
|
|
Сообщений в этой теме
=NIK= ARM начинающим Oct 12 2005, 23:09 iit Цитата(=NIK= @ Oct 13 2005, 02:09)Мужики. Под... Oct 13 2005, 02:35 vzyk В ARM'е всё по проще. Там нет ни каких разделе... Oct 13 2005, 18:52 dch Цитата(vzyk @ Oct 13 2005, 21:52)Только на С.... Oct 13 2005, 20:40 iit Цитата(vzyk @ Oct 13 2005, 21:52)Канечно, ник... Oct 14 2005, 01:51 aaarrr ЦитатаКанечно, никто в ASM зесь не програмирует... Oct 13 2005, 21:15 Andy Mozzhevilov Цитата(aaarrr @ Oct 14 2005, 02:15)ЦитатаКане... Oct 14 2005, 03:36  Karl Хочу написать проект на SAM7S64. До этого работал ... Oct 14 2005, 05:59   sergik_vrn Цитата(Karl @ Oct 14 2005, 09:59)Хочу написат... Oct 14 2005, 06:03   vzn Цитата(Karl @ Oct 14 2005, 08:59)Хочу написат... Oct 14 2005, 07:24 Stanislav Цитата(aaarrr @ Oct 14 2005, 00:15)ЦитатаКане... Oct 15 2005, 21:20 aaarrr ЦитатаИ что, для этого есть необходимость, действи... Oct 14 2005, 14:24 sergeeff Да прямо сам Atmel продает отладочную систему под ... Oct 15 2005, 11:17 Andy Mozzhevilov Цитата(aaarrr @ Oct 14 2005, 19:24)ЦитатаИ чт... Oct 17 2005, 03:29 Dot Цитата(=NIK= @ Oct 13 2005, 02:09)А вот что т... Oct 15 2005, 14:15 =NIK= Вот по делу разговор пошол
Может есть какая-нибу... Oct 15 2005, 20:50  Dot Цитата(=NIK= @ Oct 15 2005, 23:50)Ну чтобы на... Oct 16 2005, 07:08 slabnoff ЦитатаКстати, где-то тут выкладывали ее принтабель... Oct 16 2005, 09:15 aaarrr Цитата(Andy Mozzhevilov @ Oct 17 2005, 06:29)... Oct 17 2005, 07:25 Andy Mozzhevilov Цитата(aaarrr @ Oct 17 2005, 12:25)Цитата(And... Oct 17 2005, 07:32 aaarrr Цитата(Andy Mozzhevilov @ Oct 17 2005, 10:32)... Oct 17 2005, 08:38 Andy Mozzhevilov Цитата(aaarrr @ Oct 17 2005, 13:38)Цитата(And... Oct 17 2005, 08:59  NickS Цитата(Andy Mozzhevilov @ Oct 17 2005, 11:59)... Oct 17 2005, 11:02   Andy Mozzhevilov Цитата(NickS @ Oct 17 2005, 16:02)Цитата(Andy... Oct 17 2005, 11:10    NickS Цитата(Andy Mozzhevilov @ Oct 17 2005, 14:10)... Oct 17 2005, 23:49     Andy Mozzhevilov Цитата(NickS @ Oct 18 2005, 04:49)Судя по все... Oct 18 2005, 05:39      NickS Я и не ожидал большого эфекта от функций вычислени... Oct 18 2005, 07:26       dxp Цитата(NickS @ Oct 18 2005, 13:26)Я и не ожид... Oct 18 2005, 09:15        NickS Цитата(dxp @ Oct 18 2005, 12:15)Цитата(NickS ... Oct 18 2005, 11:25         Andy Mozzhevilov Цитата(NickS @ Oct 18 2005, 16:25)Эти функции... Oct 18 2005, 12:00 jasper Интересно, а про ARM-ы книжки на русском в природе... Oct 17 2005, 09:06 aaarrr Цитата(Andy Mozzhevilov @ Oct 17 2005, 11:59)... Oct 17 2005, 09:16 Andy Mozzhevilov Цитата(aaarrr @ Oct 17 2005, 14:16)Цитата(And... Oct 17 2005, 09:31 aaarrr Цитата(Andy Mozzhevilov @ Oct 17 2005, 12:31)... Oct 17 2005, 10:52 Andy Mozzhevilov Цитата(aaarrr @ Oct 17 2005, 15:52)Цитата(And... Oct 17 2005, 11:07 aaarrr Цитата(Andy Mozzhevilov @ Oct 17 2005, 14:07)... Oct 17 2005, 11:19 Andy Mozzhevilov Цитата(aaarrr @ Oct 17 2005, 16:19)Цитата(And... Oct 17 2005, 12:08  Vic1 Цитата(Andy Mozzhevilov @ Oct 17 2005, 17:08)... Oct 17 2005, 13:06 aaarrr Цитата(Andy Mozzhevilov @ Oct 17 2005, 15:08)... Oct 17 2005, 13:09 Andy Mozzhevilov Цитата(aaarrr @ Oct 17 2005, 18:09)Цитата(And... Oct 17 2005, 14:52 aaarrr Цитата(Vic1 @ Oct 17 2005, 16:06)Еще одна лож... Oct 17 2005, 13:14 Vic1 Цитата(aaarrr @ Oct 17 2005, 18:14)Цитата(Vic... Oct 17 2005, 13:28 aaarrr Цитата(Vic1 @ Oct 17 2005, 16:28)1) длина мас... Oct 17 2005, 13:34 Vic1 Цитата(aaarrr @ Oct 17 2005, 18:34)Так речь н... Oct 17 2005, 13:50 aaarrr Цитата(Vic1 @ Oct 17 2005, 16:50)Цитата(aaarr... Oct 17 2005, 14:25 Andy Mozzhevilov Цитата(aaarrr @ Oct 17 2005, 19:25)Не понимаю... Oct 17 2005, 14:39 Vic1 Тогда еще раз условия задачи: процессор - ?, разме... Oct 17 2005, 14:38 aaarrr Цитата(Andy Mozzhevilov @ Oct 17 2005, 17:39)... Oct 17 2005, 14:48 Vic1 Цитата(aaarrr @ Oct 17 2005, 19:48)Цитата(And... Oct 17 2005, 15:28 aaarrr Цитата(Vic1 @ Oct 17 2005, 17:38)Тогда еще ра... Oct 17 2005, 15:27 Andy Mozzhevilov Цитата(aaarrr @ Oct 17 2005, 20:27)Цитата(Vic... Oct 18 2005, 03:11 Vic1 Хм, издержки реального времени (почти одновременны... Oct 17 2005, 15:31 aaarrr Цитата(Vic1 @ Oct 17 2005, 18:28)Опять слишко... Oct 17 2005, 15:40 Vic1 Прерываюсь на какое-то время. Пора домой Oct 17 2005, 15:44 Dot Ничего себе -- " ARM начинающим"!
... Oct 17 2005, 16:55 Andy Mozzhevilov Цитата(Dot @ Oct 17 2005, 21:55)Ничего себе... Oct 18 2005, 03:21 aaarrr Цитата(Dot @ Oct 17 2005, 19:55)Поменяли комп... Oct 17 2005, 23:40 sergeeff Вроде как подобные споры - дела давно прошедших дн... Oct 18 2005, 05:44 aaarrr Цитата(Andy Mozzhevilov @ Oct 18 2005, 06:11)... Oct 18 2005, 12:29 Vic1 To aaarrr
Весь день I-neta не было (и IARa в то... Oct 18 2005, 15:48 aaarrr Круто, только write-back не учитывается и выход кр... Oct 18 2005, 16:41 Vic1 To aaarrr
Больше сооптимизировать не удалось... Oct 19 2005, 09:55  iosifk Цитата(Vic1 @ Oct 19 2005, 12:55)To aaarrr
... Oct 19 2005, 10:32    Andy Mozzhevilov Цитата(NickS @ Oct 19 2005, 20:22)Цитата(Andy... Oct 20 2005, 04:59 Andy Mozzhevilov Цитата(VladislavS @ Oct 18 2005, 22:32)То же ... Oct 19 2005, 10:49  VladislavS Цитата(Andy Mozzhevilov @ Oct 19 2005, 13:49)... Oct 20 2005, 04:14   Andy Mozzhevilov Цитата(VladislavS @ Oct 20 2005, 09:14)Цитата... Oct 20 2005, 05:03    VladislavS Цитата(Andy Mozzhevilov @ Oct 20 2005, 08:03)... Oct 20 2005, 05:47 Vic1 Quote - это лист содержания описания компилятора (... Oct 19 2005, 10:39 aaarrr Цитата(Vic1 @ Oct 19 2005, 12:55)To aaarrr
Б... Oct 19 2005, 12:08 Andy Mozzhevilov Цитата(aaarrr @ Oct 19 2005, 17:08)Цитата(Vic... Oct 19 2005, 12:33 Vic1 To [/B]aaarrr[B]
ЦитатаДа, memcpy умнее написана, ... Oct 19 2005, 12:31 Ken@t Ваш креатив - образчик мысли, слога,
До Вас такого... Oct 19 2005, 13:41  AlexeyAS ЦитатаНи кто не сопротивляется по поводу иногда ма... Oct 20 2005, 03:51 aaarrr Цитата(Andy Mozzhevilov @ Oct 19 2005, 15:33)... Oct 19 2005, 12:46 Andy Mozzhevilov Цитата(aaarrr @ Oct 19 2005, 17:46)Цитата(And... Oct 20 2005, 03:39  AlexeyAS Цитата(Andy Mozzhevilov @ Oct 20 2005, 09:39)... Oct 20 2005, 04:02   Andy Mozzhevilov Цитата(AlexeyAS @ Oct 20 2005, 09:02)Цитата(A... Oct 20 2005, 05:22    AlexeyAS ЦитатаА что такие проекты уже не структуируются ср... Oct 20 2005, 08:34     Andy Mozzhevilov Цитата(AlexeyAS @ Oct 20 2005, 13:34)Цитата
Э... Oct 20 2005, 09:30      AlexeyAS Цитата(Andy Mozzhevilov @ Oct 20 2005, 15:30)... Oct 20 2005, 10:45       Andy Mozzhevilov Цитата(AlexeyAS @ Oct 20 2005, 15:45)ЦитатаМа... Oct 20 2005, 11:09        AlexeyAS ЦитатаИ в Ц макросы - зло, если их использовать вм... Oct 21 2005, 02:37 Vic1 Хм, а в обратную сторону (повышения уровня)? Разве... Oct 19 2005, 12:52 Vic1 Добавление к квалификации и молодежного сленга ... Oct 19 2005, 13:16 aaarrr Цитата(Vic1 @ Oct 19 2005, 16:16)Добавление к... Oct 19 2005, 14:28 Vic1 Добавление к теме о квалификации (и против молодеж... Oct 19 2005, 14:37 aaarrr Цитата(Vic1 @ Oct 19 2005, 17:37)Добавление к... Oct 19 2005, 14:56 Vic1 Цитата(aaarrr @ Oct 19 2005, 19:56)Цитата(Vic... Oct 20 2005, 03:36 IgorKossak Возвращаясь к теме, вот на мой взгляд неплохой сай... Oct 20 2005, 07:18 slabnoff 2 dxp - Полностью поддерживаю!
Немного о свое... Oct 20 2005, 08:20 AlexeyAS ЦитатаГоду в 1998 начал применять в своих разработ... Oct 20 2005, 09:48  Andy Mozzhevilov Сейчас я уже дома, сыт и доволен, поэтому могу нес... Oct 20 2005, 15:12 Vic1 То AlexeyAS
Ну уж про Algoritm Bilder - это совс... Oct 20 2005, 11:47 AlexeyAS ЦитатаТо AlexeyAS
Ну уж про Algoritm Bilder - эт... Oct 21 2005, 02:46
2 страниц
1 2 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|