реклама на сайте
подробности

 
 
> Хочу попробовать ARM, подскажите, что для этого нужно?, Какой проц выбрать, отлад. платку и какой софт?
sonycman
сообщение Jan 23 2007, 16:44
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Имеется опыт работы с 8 битными контроллерами ATmega.
Хочется освоить что-либо помощнее.
Надо иметь на борту АЦП, I2C, SPI и желательно ЦАП и USB.
Корпус не более QFP64 по кол-ву ног.
Пока выбор пал на LPC2142-48.

Что мне надо иметь, чтобы писать программы и шить в такой контроллер?
Какой софт/железо?
Вроде есть недорогие отладочные платы с такими контроллерами на сайте MT-System.
Не знаю только, высылают они товар по почте или нет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alex_inventor
сообщение Jan 28 2007, 02:46
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 54
Регистрация: 25-01-07
Пользователь №: 24 744



На С работаю около года. Исключительно на микроконтроллерах. До этого программировал на asm. Прошёл путь PIC, MSK-51, AVR, вот теперь очередь до ARM дошла.
Теперь по существу.
(*((volatile unsigned long *) 0xFFFFF000))

volatile unsigned long *

*((volatile unsigned long *) 0xFFFFF000)

Я убрал парные скобки чтоб до звёздочек добраться и где звёздочки находятся?

Цитата
Это называется приведение типов (cast).


Что такое приведение типов я прекрасно знаю. Перечитал главу в K&R (2.7 Преобразование типов.) Вырезки приводить не буду, но звёздочек там не встречал. Что такое cost прочитал впервые. Никогда не пользовался по причине слишком специфичности данной операции. Выражение (unsigned long ) 0xFFFFF000 есть пример cost. Но что делает звезда справа, и что на самом деле volatile обозначает? И зачем для адреса применять тип long(64bit), или в RealViwe long(32bit)?

Цитата
Знает. В этом состоит суть оптимизации кода при компиляции.

Как компилятор может знать заранее значение переменной, на которое указывает указатель? Или мы друг друга не понимаем?
Я много раз видел, как и что оптимизирует компилятор (я говорю про оптимизацию по размеру кода). Общие принципы оптимизации по пальцам пересчитать можно. Основная оптимизация это создание массива одинаковых кодовых последовательностей. И прыгание туда и обратно из программы. Далее идёт заранее вычисление выражений, которые можно просчитать до компиляции, в такие выражения не входят переменные, оптимизация сокращения кода, результаты которого одни и теже. Например r0=1; r0=1; Такая ситуация часто встречается при инициализации периферии в которой, в качестве защиты сделана необходимость дважды занести значения в регистр. В таких случаях выключают оптимизацию перед выражением и включают после. Ну и рискованный тип оптимизации, и как правило редко применяющейся, замена блоков кода, который по мнению компилятора выполняет определённый алгоритм, другим, оптимизированным, блоком кода выполняющий тот же алгоритм. Ни один из этих видов оптимизации не должен исказить загрузку по ссылке. Если я не прав приведите пример. Обсудим.

Привожупример дизассемблера:
LDR PC, Reset_Addr
Reset_Addr DCD Reset_Handler

Теперь становится понятно. Это особенности инструкции LDR. Она неможет включать в себя число, ну например как в AVR сделано – если идёт загрузка данных, то следующий за инструкцией байт это байт данных. LDR косвенно загружает регистр PC используя метку Reset_Addr, которая указывает на директиву резервирования и инициализации памяти DCD которая заносит число Reset_Handler которое проинициализировано EQU . Во какая цепочка! Самое интересное, что я давно обратил внимание на такое странное кодирование. А выражение (*((volatile unsigned long *) 0xFFFFF000)) это и делает. Но сама запись сбивает с толку. Я бы написал так flash int adr 123, ну или const int adr 123. В данном случае const уместна. Я же говорил в спорах рождается истина smile.gif .

Цитата
Ты лучше тогда почитай любую книжку по С, раз я не могу объяснить...


Да читал я книжки по С. Но я не читаю их от корки до корки (как например худ. литературу) по причине другого подхода. Я читаю те главы, которые мне нужны в данный момент. И обсуждаемую книгу я не прочитал. Прочитал главы общей архитектуры, инициализация, UART. Сейчас пишу проект с UART. В принципе написал. Всё работает за исключением некоторых мелочей. По мере появления вопросов читаю новые главы. Сейчас буду осваивать прерывания, ну и читать про них. Буду постепенно наращивать проект, пока не подключу всю периферию.
Всем a14.gif
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jan 28 2007, 03:22
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Alex_inventor @ Jan 28 2007, 01:46) *
(*((volatile unsigned long *) 0xFFFFF000))
Но что делает звезда справа, и что на самом деле volatile обозначает?

Дословно *(unsigned long *) 0xFFFFF000 означает "значение типа unsigned long, на которое указывает указатель, содержащий адрес 0xFFFFF000". Или, что тождественно, "значение типа unsigned long, находящееся по адресу 0xFFFFF000". volatile заставляет компилятор при упоминании этого значения каждый раз считывать его заново, а не использовать сохраненное где-то считанное ранее значение.
Цитата(Alex_inventor @ Jan 28 2007, 01:46) *
Как компилятор может знать заранее значение переменной, на которое указывает указатель? Или мы друг друга не понимаем?
Если он это значение недавно прочитал, и сам с тех пор не менял, то вправе предположить, что значение осталось неизменным и использовать сохраненное значение, экономя такты и/или код на повторном обращении к памяти.
Цитата(Alex_inventor @ Jan 28 2007, 01:46) *
В данном случае const уместна.
const была приведена только как пример модификатора объявления переменной. С volatile const никак не связан, они существуют отдельно сами по себе.
Цитата(Alex_inventor @ Jan 28 2007, 01:46) *
Я читаю те главы, которые мне нужны в данный момент.
Ну хотя бы по диагонали остальные просмотреть стоит. Чтобы понять, в каких главах есть что-то для Вас новое и, следовательно, какие главы стоит просмотреть внимательнее. Я, например, сочетаю этот подход с другим - если мне что-то не понятно, читаю дальше. Потом возвращаюсь в начало и читаю снова. После двух прочтений в голове начинает формироваться некоторая картина, которая после трех-четырех приобретает осмысленные формы.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sonycman   Хочу попробовать ARM, подскажите, что для этого нужно?   Jan 23 2007, 16:44
- - defunct   Цитата(sonycman @ Jan 23 2007, 16:44) Пок...   Jan 23 2007, 17:10
|- - sonycman   Цитата(defunct @ Jan 23 2007, 18:10) 1. U...   Jan 23 2007, 18:19
||- - zltigo   Цитата(sonycman @ Jan 23 2007, 17:19) 1. ...   Jan 23 2007, 18:28
||- - defunct   Цитата(sonycman @ Jan 23 2007, 18:19) 3. ...   Jan 23 2007, 18:30
|||- - Andy Great   Цитата(defunct @ Jan 23 2007, 18:30) Цита...   Jan 23 2007, 23:31
|||- - sonycman   Цитата(Andy Great @ Jan 24 2007, 00:31) У...   Jan 24 2007, 01:18
||- - SpiritDance   Цитата(sonycman @ Jan 23 2007, 18:19) 2. ...   Jan 23 2007, 18:34
|- - Alex03   Цитата(defunct @ Jan 23 2007, 19:10) 2. J...   Jan 24 2007, 08:36
|- - Сергей Борщ   Цитата(Alex03 @ Jan 24 2007, 07:36) Цитат...   Jan 24 2007, 10:53
- - SpiritDance   отладочные платы olimex на этом контроллере продаю...   Jan 23 2007, 17:32
- - sonycman   Насчёт MT-Link понял, спасибо. Можно взять. Разве...   Jan 23 2007, 18:54
- - sonycman   Что-то я не понял, для LPC2xxx макс. скорость SPI ...   Jan 23 2007, 21:00
- - GetSmart   SPI1 (в отличие от SPI0) может работать на 1/2 CPU...   Jan 24 2007, 02:12
|- - zltigo   Цитата(GetSmart @ Jan 24 2007, 01:12) SPI...   Jan 24 2007, 04:23
|- - sonycman   Цитата(GetSmart @ Jan 24 2007, 03:12) SPI...   Jan 24 2007, 04:32
|- - zltigo   Цитата(sonycman @ Jan 24 2007, 03:32) При...   Jan 24 2007, 04:50
|- - sonycman   Цитата(zltigo @ Jan 24 2007, 05:50) Datas...   Jan 24 2007, 12:23
|- - SpiritDance   Цитата(sonycman @ Jan 24 2007, 12:23) Но ...   Jan 24 2007, 12:34
|- - zltigo   Цитата(sonycman @ Jan 24 2007, 11:23) Но ...   Jan 24 2007, 12:37
- - Andreas1   ЦитатаУ меня и IAR с ним работал на "ура...   Jan 24 2007, 11:19
|- - Сергей Борщ   Цитата(Andreas1 @ Jan 24 2007, 10:19) Цит...   Jan 24 2007, 11:26
|- - zltigo   Цитата(Сергей Борщ @ Jan 24 2007, 10:26) ...   Jan 24 2007, 12:31
|- - sonycman   Цитата(zltigo @ Jan 24 2007, 13:31) Не зн...   Jan 24 2007, 12:39
||- - zltigo   Цитата(sonycman @ Jan 24 2007, 11:39) А в...   Jan 24 2007, 12:43
|- - Сергей Борщ   Цитата(zltigo @ Jan 24 2007, 11:31) Цитат...   Jan 24 2007, 13:42
|- - AlexBoy   Запугали человека всякими MT и J-Link-ми. Вигглер ...   Jan 24 2007, 14:15
|- - zltigo   Цитата(Сергей Борщ @ Jan 24 2007, 12:42) ...   Jan 24 2007, 15:16
- - boez   CrossWorks последний 1.6b3 неплох. Они там многое ...   Jan 24 2007, 14:20
- - Andreas1   ЦитатаТут я выкладывал схему Вигглера, которая у м...   Jan 24 2007, 14:32
- - sonycman   Хорошо, всем спасибо за советы. Решил заказывать в...   Jan 24 2007, 17:23
|- - Сергей Борщ   Цитата(sonycman @ Jan 24 2007, 16:23) А в...   Jan 24 2007, 18:56
|- - sonycman   Понятно, значит устарели PLCC... Цитата(Сергей Бо...   Jan 24 2007, 20:10
|- - Сергей Борщ   Цитата(sonycman @ Jan 24 2007, 19:10) Зап...   Jan 24 2007, 20:20
- - SpiritDance   Кстати если посмотреть на даташит lpc2103 можно на...   Jan 24 2007, 19:15
- - sonycman   Народ, помогите, где можно скачать нормальную верс...   Jan 24 2007, 23:28
|- - Alex_inventor   Цитата(sonycman @ Jan 25 2007, 00:28) Нар...   Jan 25 2007, 02:39
|- - DRUID3   Цитата(Alex_inventor @ Jan 25 2007, 01:39...   Jan 25 2007, 05:32
- - Alex_inventor   Кстати, есть ещё вопросы к уважаемым участникам фо...   Jan 25 2007, 03:32
- - sonycman   2Alex_inventor Хорошо, завтра взгляну на диск от к...   Jan 25 2007, 04:59
|- - ek74   Цитата(sonycman @ Jan 25 2007, 04:59) Сей...   Jan 25 2007, 11:22
|- - sonycman   Цитата(ek74 @ Jan 25 2007, 12:22) Т.е. AD...   Jan 25 2007, 13:28
- - Andy Great   В каталоге BIN лежит собственно Кейловский компиле...   Jan 25 2007, 11:41
- - Alex_inventor   2Andy Great: Да вы правы насчёт размещения компил...   Jan 25 2007, 13:42
|- - Andrew_Ch   2 Alex_inventor Подскажите, пожалуйста, ссылку на ...   Jan 25 2007, 13:55
|- - Andy Great   Цитата(Alex_inventor @ Jan 25 2007, 13:42...   Jan 25 2007, 14:38
- - Alex_inventor   2sonycman: Огромный за мыло.   Jan 25 2007, 13:53
- - Alex_inventor   2Andrew_Ch: Ссылка книги http://ihtik.dreamhosters...   Jan 25 2007, 14:08
|- - Andrew_Ch   2 Alex_inventor: Спасибо большое. Не хилый ре...   Jan 25 2007, 15:31
- - sonycman   Цитата(Alex_inventor @ Jan 25 2007, 14:53...   Jan 25 2007, 16:08
|- - Andrew_Ch   2 sonycman Тогда моем его, а средство вот ...   Jan 25 2007, 16:29
- - Alex_inventor   2 Andy Great: Не могли бы вы выложить keil компиля...   Jan 25 2007, 16:44
|- - Andy Great   Цитата(Alex_inventor @ Jan 25 2007, 16:44...   Jan 26 2007, 09:47
- - Alex_inventor   Проверил для какого компилятора написаны примеры п...   Jan 25 2007, 17:22
- - Alex_inventor   Подскажите, что это за ошибка: Build target 'T...   Jan 25 2007, 17:41
- - sonycman   Я вот тоже не в понятках пока - разбираюсь со Star...   Jan 25 2007, 20:02
- - Alex_inventor   Народ, а как в uVision узнать размер полцчившегося...   Jan 25 2007, 23:44
- - Alex_inventor   Hello All. Изучаю UART в LPC20xx. Есть одна непон...   Jan 26 2007, 02:36
- - Alex_inventor   Кто-нибудь пользуется такой софтиной “Embest IDE f...   Jan 26 2007, 03:33
|- - IgorKossak   Цитата(Alex_inventor @ Jan 26 2007, 02:33...   Jan 26 2007, 10:24
- - sonycman   2Alex_inventor Там uVision версии 3.50, это просто...   Jan 26 2007, 05:23
- - Dr.Craft   В 3,03 уже нету CARMa, был в 3,02. Выкладываю те ф...   Jan 26 2007, 12:21
- - Alex_inventor   Скачал Embest Register Editor. Прога так себе… Н...   Jan 26 2007, 13:39
- - Alex_inventor   To All Объясните в чём причина. Вот пример кода...   Jan 26 2007, 15:01
- - sonycman   Цитата(Alex_inventor @ Jan 26 2007, 16:01...   Jan 26 2007, 15:22
- - Alex_inventor   Запарил уже uVision. Надоело уже переустанавлива...   Jan 26 2007, 15:31
- - Alex_inventor   ЦитатаБлин, тяжело изучать ARM по книге, в которой...   Jan 26 2007, 15:44
- - sonycman   Цитата(Alex_inventor @ Jan 26 2007, 16:44...   Jan 26 2007, 16:04
- - Alex_inventor   Нет экран не прыгает ниже или выше указателя. С эт...   Jan 26 2007, 16:20
- - sonycman   Цитата(Alex_inventor @ Jan 26 2007, 17:20...   Jan 26 2007, 16:51
- - Dr.Craft   Примерно 100 мБ IAR весит с небольшим.   Jan 26 2007, 17:06
- - sonycman   Вот цитата с форума IXBT.com: ЦитатаНо поковырявши...   Jan 26 2007, 17:19
- - Alex_inventor   Про IAR могу поведать следующую историю. Раньше, к...   Jan 26 2007, 18:18
- - sonycman   2Alex_inventor Понятно, спасибо за разъяснение Сл...   Jan 26 2007, 19:09
- - Alex_inventor   2sonycman Кидай мыло, а то я письмо удалил. Что к...   Jan 27 2007, 02:39
- - sonycman   2Alex_inventor Моё мыло: sonycman(собачка)mail(тчк...   Jan 27 2007, 04:00
- - Alex_inventor   ЦитатаВсё, дочитал я книгу по LPC2000. Неплохая, е...   Jan 27 2007, 14:53
- - sonycman   2Alex_inventor Спасибо за кряк. Музыка и правда ни...   Jan 27 2007, 15:20
- - Andy Great   Все примеры отлично работают, только их надо брать...   Jan 27 2007, 17:24
- - Alex_inventor   Я не специалист, но попробую объяснить как я понял...   Jan 27 2007, 17:29
- - Alex_inventor   2Andy Great Компилятор я качал с keil.com. Он лежи...   Jan 27 2007, 17:48
- - sonycman   2Alex_inventor Да, я бы тоже был бы рад послушать ...   Jan 27 2007, 18:01
|- - zltigo   Цитата(sonycman @ Jan 27 2007, 17:01) я б...   Jan 27 2007, 18:17
|- - sonycman   Цитата(zltigo @ Jan 27 2007, 19:17) Очень...   Jan 27 2007, 18:40
|- - zltigo   Цитата(sonycman @ Jan 27 2007, 17:40) Ска...   Jan 27 2007, 19:11
|- - sonycman   Цитата(zltigo @ Jan 27 2007, 20:11) И на ...   Jan 27 2007, 19:20
- - Alex_inventor   Кстати, ещё одна ниточка в решение проблемы размещ...   Jan 27 2007, 19:57
|- - sonycman   Цитата(Alex_inventor @ Jan 27 2007, 20:57...   Jan 27 2007, 20:19
- - Alex_inventor   Столкнулся с проблемой. Есть например в проекте дв...   Jan 27 2007, 20:40
- - Alex_inventor   2 sonycman Спасибо за разъяснение, хотя не совсем ...   Jan 27 2007, 20:59
- - sonycman   2Alex_inventor Смотри: допустим, мы читаем данные ...   Jan 27 2007, 21:06
- - Alex_inventor   2sonycman Давай для точности, разберёмся с определ...   Jan 27 2007, 22:15
- - sonycman   2Alex_inventor Давай Const - запрешает любые опе...   Jan 27 2007, 22:34
- - Alex_inventor   Если быть точным, то EQU-это директива компилятора...   Jan 27 2007, 23:55
- - sonycman   2Alex_inventor Можно тебя спросить, как давно ты н...   Jan 28 2007, 00:19
- - sonycman   2Alex_inventor Я пробовал программить только PIC и...   Jan 28 2007, 03:37
- - Alex_inventor   2 Сергей Борщ ЦитатаНу хотя бы по диагонали осталь...   Jan 28 2007, 04:40
- - Alex_inventor   2sonycman А у тебя proteus есть? Ты им когда-нибуд...   Jan 28 2007, 05:16
3 страниц V   1 2 3 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 12:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01497 секунд с 7
ELECTRONIX ©2004-2016