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

 
 
18 страниц V  « < 4 5 6 7 8 > »   
Reply to this topicStart new topic
> Хочу попробовать ARM, подскажите, что для этого нужно?, Какой проц выбрать, отлад. платку и какой софт?
sonycman
сообщение Jan 27 2007, 04:00
Сообщение #76


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

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



2Alex_inventor
Моё мыло: sonycman(собачка)mail(тчк)ru

Да-а, ты прямо писатель smile.gif
Наверное, час пост писал?

А вообще интересно почитать, конечно. Надо-же, ты столько софта перелопатил. Я пробовал только PCAD начиная с 2000 до 2006 (как ты) и OrCAD10.
Остановился на Пикаде. Хотя и Оркад тоже хорош.
Но Пикад показался удобнее.
Не знаю, почему тебе он кажется неудобным. Создать новый элемент - минутное дело. Что паттерн, что символ. Оркад в этом смысле похуже.
Насчёт Sprint Layout - не думал, что его хоть как-то можно поставить рядом с огромными кадами smile.gif

Это всё имхо smile.gif

Тут, наверное, дело привычки. Я начинал именно с Пикада, а ты - со Спринта. Старый друг лучше новых двух smile.gif

Такой вот оффтопчик небольшой smile.gif


Всё, дочитал я книгу по LPC2000. Неплохая, если не считать, что большинство примеров не будет работать под Кейлом (если только GCC ставить?).
Последняя глава по Микровижн как раз идёт smile.gif
Завтра начну изучать мануал по SAM7, плата с которым скоро должна приехать smile.gif
А пока сложилось впечатление, что LPC2000 и AT91SAM7 достойны один другого. Вот если бы взять всё лучшее из каждого и соединить - был бы идеальный ARM микроконтроллер начального уровня...smile.gif

Сообщение отредактировал sonycman - Jan 27 2007, 04:03
Go to the top of the page
 
+Quote Post
Alex_inventor
сообщение Jan 27 2007, 14:53
Сообщение #77


Участник
*

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



Цитата
Всё, дочитал я книгу по LPC2000. Неплохая, если не считать, что большинство примеров не будет работать под Кейлом (если только GCC ставить?).

Необольщайся. Я скачал этот GCC. Ни один пример не работает. Везде примерно такая ошибка sad.gif :
Build target 'Flash'
compiling main.c...
arm-uclibc-gcc: cannot specify -o with -c or -S and multiple compilations
assembling Startup.s...
Assembler messages:
Error: Error: can't open Files\Keil\ARM\INC\Philips\ for reading
Files\Keil\ARM\INC\Philips\: No error
Target not created angry.gif
И самое не приятное что непонятно из-за чего. cranky.gif Но есть в этом и один, но большой плюс. Приходится построчно копировать исходники, компилировать, искать ошибки, искать ответы на непонятки, и как следствие неплохое самообучение. Правда силу воли надо иметь. Нудно иногда бывает.
Насчёт среды, если ты работаешь в PCAD и он тебя не напрягает, значит, эта среда для тебя. Значит, она предоставляет тебе все ресурсы, в которых у тебя возникает потребность. Не больше, не меньше. И это правильно. У меня был случай, когда я зашёл к другу (геймеру), я заметил, что у него winamp был с футуристическим скином. Причём в крайне выраженной форме wacko.gif . Пикассо отдыхает! Я с трудом нашёл кнопку для настройки скина, на ощупь cool.gif , и поставил стандартный. Каково же было моё удивление, когда мой друг с криками “не трогай птичку!!! ” набросился на меня maniac.gif . Дааа… дело привычки!
Спор какая среда лучше, напоминает софистику. На изначально ошибочных условиях делаются все остальные выводы. Я на это смотрю иначе. Если есть среда A,B,C. Средой A пользуюсь я. Средой B ты. А среда С устраивает нас обоих, то эта среда лучшая из этих трёх. Т.е. среда С предоставляет все нам необходимые сервисы. Напоследок хочу выразить моё мнение по поводу Layout. Почему все её так кичатся? Каких то 1,4м против сотен мегабайт проффесиональных CAD, не наш уровень glare.gif ! Однако если сравнить одинаковые сервисы c тем же PCAD, то имхо, в первом они гораздо удобнее. Надо сравнивать по аналогичным сервисам, тогда оценка будет более, менее объективной. Понятно, что в PCAD намного больше сервисов, которых в LayOut просто нет. Но этот одинаковый фундамент у PCAD, повторяюсь имхо, хуже. Вот почему мне он не понравился. С другими средами та же история. Кстати uVision идут по правильному пути. Пути максимальной настройки среды. У всех разные стереотипы. И вижн постарался их не ломать. Думаю, среды в которых будет такой подход, будут обречены на популярность (о как выразился!).
Письмо с кряком высылаю. Лови! smile.gif Всем a14.gif
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 27 2007, 15:20
Сообщение #78


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

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



2Alex_inventor
Спасибо за кряк. Музыка и правда ничего. Люблю я мызыку smile.gif

Сейчас вот меня интересует вопрос отладки.
Везде пишут, что отладчики загружают программу в RAM, а не во флеш. Ну это понятно - можно много точек останова поставить.

Но вот как-же может работать программа в памяти, когда она предназначена для выполнения во флешке? Там же при инициализации выделяется и очищается место в RAM под стёк и переменные. А тут по этому месту сама программа будет. Она же затрёт сама себя!
Вот это мне не понятно.
Другое дело, если проект изначально готовить для размещения в оперативе - стёк и переменные отодвинуть на другой конец памяти, и программу тогда можно перекидывать на начало RAM.

Сообщение отредактировал sonycman - Jan 27 2007, 15:21
Go to the top of the page
 
+Quote Post
Andy Great
сообщение Jan 27 2007, 17:24
Сообщение #79


Знающий
****

Группа: Свой
Сообщений: 793
Регистрация: 5-11-04
Из: Краматорск, Украина
Пользователь №: 1 057



Все примеры отлично работают, только их надо брать из ветки GNU. Лучше не ставить пакет в каталоги с пробелами. Для стыковки некоторых GNU компиляторов подойдет это. Возможно, понадобится указать дополнительные параметры компиляции, например -mno-fpu для ассемблера (об этом на сайте и в форумах Кейла можно почитать). А вообще, указывайте GNU-сборку Вашу: их несколько, и для некоторых надо больше постараться. ИМХО GNUARM проще всего прилепить.
Go to the top of the page
 
+Quote Post
Alex_inventor
сообщение Jan 27 2007, 17:29
Сообщение #80


Участник
*

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



Я не специалист, но попробую объяснить как я понял. Во-первых, само ядро – микропроцессор – “фоннеймовская” архитектура. Т.е. шина данных и адреса одна. Проца не интересует, что есть flash или ram. Он инкрементирует PC и по адресу берёт команду, а что это Flash, Ram, или что другое его не касается. Это уже проблемы железа. Если в команде есть адрес данных то он по этой же шине запрашивает данные, а куда его этот адрес приведёт в Ram, Flash или в “тьму тараканью”, уже не его проблемы. Это проблемы компилятора и кодера(в некоторых случаях). Поэтому и существуют такие вектора как Undef_Addr, PAbt_Addr, DAbt_Addr. Для выполнения программы в RAM необходимо согласовать адреса стеков, и переменных. В принципе это делает компилятор. Ты только резервируешь переменные, а компилятор сам их распределяет. Для того чтоб компилятор разместил функцию в RAM в Keil компиляторе есть директива __ram. В RealViwe не помню (или не знаю). Вообще ram, как правило, маленькая и много туда не поместится. При загрузке в проц, тоже надо делать специальные телодвижения. Слышал что, напрямую не получится, надо писать свой загрузчик. (может я не прав). Я никогда не делал подобную процедуру. У меня даже нет физического камня. Эксперименты пока в Proteus делаю. По этому всё вышесказанное чистые умозаключения. Буду рад тоже выслушать мнения специалиста по данному вопросу.
Go to the top of the page
 
+Quote Post
Alex_inventor
сообщение Jan 27 2007, 17:48
Сообщение #81


Участник
*

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



2Andy Great
Компилятор я качал с keil.com. Он лежит на одной странице, где и сам uVision. Файл является установщиком (gccARM331.exe). Я ничего не настраивал, он сам установил себя в папку с:\ Cygnus и ещё некоторые манипуляции с реестром, по-моему, проделал. На диске есть готовые проекты. В каждом проекте в настройках указан GCC. Так вот, если я нажимаю компиляцию, то выскакивает ошибка. Проекты необходимы только для использования при прочтении книги, и всё! В чём причина разбирается, не хочу (осваиваю RealViwe). Повторяюсь, это не отдельные файлы, а целые проекты, с настройками компилятора и т.д. По этому всё сразу должно заработать. Сей факт пусть остаётся на совести автора.
P.S. В некоторых проектах настолько очевидные ошибки, что становится понятно, что автор их никогда и не компилировал. Например использование putchar(), а #include<stdio.h> и в помине нету.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 27 2007, 18:01
Сообщение #82


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

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



2Alex_inventor
Да, я бы тоже был бы рад послушать спецов, только они последнее время все пропали куда-то.
Мы с тобой одни остались sad.gif

Спасибо за помощь.
Я это всё понимаю.
Просто на IXBT почитал, что небольшие программки (типа как примеры в книге) можно загрузить прямо в рам (для отладки).
Да, наверное, для этого надо задать в компиляторе или линкере соответствующие адреса для стёка и переменных, чтобы они на программу не наложились...
Но как это сделать? RV компилятор даже не имеет возможности задать стартовый блок памяти как RAM. Только FLASH. Так что непонятного ещё много...
Насчёт записи программы в проц - из той-же книги - через утилиту Philips LPC2000 Flash Utility. Всё просто, как мне показалось.
А у SAM7 другой загрузчик - SAM-BA.

Я тоже пока чисто теоретизирую. Только не в Протеусе, а в симуляторе Кейла упражняюсь. Вещь кстати зверская - возможностей куча.

По компилятору - я даже браться за GCC не буду. Есть ведь RV - один из лучших, вроде. Только освоить надо.
RV сильно отличается от CARMа и, наверное, от GCC.
Примеры для него есть в папке Микровижн: C:\Program Files\Keil\ARM\RV30\Examples\

Цитата(Alex_inventor @ Jan 27 2007, 18:48) *
P.S. В некоторых проектах настолько очевидные ошибки, что становится понятно, что автор их никогда и не компилировал. Например использование putchar(), а #include<stdio.h> и в помине нету.

Это возможно потому, что putchar() там у автора своя, и ей не нужна стандартная библиотека.

Сообщение отредактировал sonycman - Jan 27 2007, 18:08
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 27 2007, 18:17
Сообщение #83


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(sonycman @ Jan 27 2007, 17:01) *
я бы тоже был бы рад послушать спецов, только они последнее время все пропали куда-то.

Очень хорошо варитесь в "собственном соку" smile.gif сами задаете, сами ищите, сами отвечаете...
Это нормальный и правильный этап освоения нового.
Когда вопросы станут с более неочевидными ответами и схлынет их критическая масса, думаю и помощь подоспеет.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 27 2007, 18:40
Сообщение #84


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

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



Цитата(zltigo @ Jan 27 2007, 19:17) *
Очень хорошо варитесь в "собственном соку" smile.gif сами задаете, сами ищите, сами отвечаете...
Это нормальный и правильный этап освоения нового.
Когда вопросы станут с более неочевидными ответами и схлынет их критическая масса, думаю и помощь подоспеет.


Слава богу, мы не одни ! smile.gif

Скажите пожалуйста, MT-LINK будет работать с Keil uVision RealView ?
Вроде должен через RDI драйвер?

Если да, то я, наверное, закажу его на терраэлектронике...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jan 27 2007, 19:11
Сообщение #85


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(sonycman @ Jan 27 2007, 17:40) *
Скажите пожалуйста, MT-LINK будет работать с Keil uVision RealView ?
Вроде должен через RDI драйвер?

И на этот smile.gif вопрос несколько раз на этом форуме ответ был - через RDI - будет.
Ответы на вопросы где взять RDI к MT-Link и как его зарегистрировать - тоже найдете на этом форуме smile.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 27 2007, 19:20
Сообщение #86


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

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



Цитата(zltigo @ Jan 27 2007, 20:11) *
И на этот smile.gif вопрос несколько раз на этом форуме ответ был - через RDI - будет.
Ответы на вопросы где взять RDI к MT-Link и как его зарегистрировать - тоже найдете на этом форуме smile.gif

Это хорошо smile.gif
Почти всё нашёл, кроме одного - нигде нет кряка для RDI.
Почему-то все ссылки на него на Сахаре нерабочие.
А в "своих" я пока не состою... sad.gif
Если не трудно, отправте, плиз, на мой ящик этот rdikeygen - sonycman(собака)mail(тчк)ru
Заранее спасибо smile.gif
Go to the top of the page
 
+Quote Post
Alex_inventor
сообщение Jan 27 2007, 19:57
Сообщение #87


Участник
*

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



Кстати, ещё одна ниточка в решение проблемы размещения в RAM. В файле определении регистров, в моём случае lpc210x.h, есть следующие строки:
/* Vectored Interrupt Controller (VIC) */
#define VICIRQStatus (*((volatile unsigned long *) 0xFFFFF000))
#define VICFIQStatus (*((volatile unsigned long *) 0xFFFFF004))
#define VICRawIntr (*((volatile unsigned long *) 0xFFFFF008))
#define VICIntSelect (*((volatile unsigned long *) 0xFFFFF00C))
#define VICIntEnable (*((volatile unsigned long *) 0xFFFFF010))
#define VICIntEnClr (*((volatile unsigned long *) 0xFFFFF014))
#define VICSoftInt (*((volatile unsigned long *) 0xFFFFF018))
* * *
Т.е. объявляются переменные-адреса. Volatile-по некоторым данным переменная находящиеся в энергозависимой памяти (т.е. RAM). Кто ни будь объяснит что это за синтаксис такой? И за чем его в данном случае применять. Есть предположение что это нужно компилятору для переразмещении адресов в случае разных типов памяти, RAM, FlASH, EXT RAM?
Go to the top of the page
 
+Quote Post
sonycman
сообщение Jan 27 2007, 20:19
Сообщение #88


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

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



Цитата(Alex_inventor @ Jan 27 2007, 20:57) *
Есть предположение что это нужно компилятору для переразмещении адресов в случае разных типов памяти, RAM, FlASH, EXT RAM?

Не совсем.
Volatile чем-то похож на Const.

Вот что я вычитал из своего нового справочника по C++:
Квалификатор volatile сообщает компилятору, что значение переменной может изменяться неявно.
Например, адрес глобальной переменной можно передать таймеру операционной системы и использовать его для отсчёта реального времени. В этом случае содержимое переменной изменяется без явного выполнения какого-либо оператора присваивания.
Это очень важно, поскольку большинство компиляторов языка С/С++ автоматически оптимизируют некоторые выражения, считая, что значения переменных не изменяются, если они не указаны в левой части оператора присваивания и т.д.

То есть к флешке и к оперативе эти адреса не имеют никакого отношения.
Это адреса регистров периферии, и volatile стоит, видимо, для того, чтобы компилятор не наделал ошибок при оптимизации кода.
Go to the top of the page
 
+Quote Post
Alex_inventor
сообщение Jan 27 2007, 20:40
Сообщение #89


Участник
*

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



Столкнулся с проблемой. Есть например в проекте два файла (one.c , two.c). В one.c присоединяю файл определений lpc2xxx.h и two.c. Так вот во время компиляции определения файла lpc2xxx.h не видны в файле two.c. C функциями та же проблема. Когда работал с AVR, проблемы не было. Надо было только порядок подключаемых файлов соблюсти. Т.е. если в файле используется какая то функция другого файла, то тот другой файл должен быть присоединен раньше. Компилятор (RealViwe)
Go to the top of the page
 
+Quote Post
Alex_inventor
сообщение Jan 27 2007, 20:59
Сообщение #90


Участник
*

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



2 sonycman
Спасибо за разъяснение, хотя не совсем понятно. Нет, этo:
[/quote] , для того, чтобы компилятор не наделал ошибок при оптимизации кода. [/quote]
мне понятно. Но я не могу понять где компилятор может напортачить. Const и в Африке const. Конечно, если написать x=2+3, то компилятор соптимизирует в x=5. Но если мы напишем adr+5, и компилятор соптимизирует, ведь это не будет являться ошибкой. Похоже это фичи С++. Я знаю только С. Пока писал осенило! Только обратил внимание, что это типичное объявление #define, причём здесь переменная? Созрел вопрос к нашим гуру: А почему в определениях адресов регистров используется такой экзотический способ, а не банальное #define? Или этот вопрос не достоин Вас? Ну тогда извините sad.gif
Go to the top of the page
 
+Quote Post

18 страниц V  « < 4 5 6 7 8 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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