LINUX.ORG.RU

ARM книжка популярная


0

0

Есть книжка популярная по ARM-у? Типа Юрова или как их там для x86? Ну тоесть не голый даташит, а с объяснениями и кусками кода пообъемнее?

На текущий момент я не могу отключить правильно MMU. Я делаю как в даташите. Но после этого испольняются несколько инструкций вперед (похоже кэш) и все.

Нормально отлаживаться возможности нет. Экспериментирую с КПК и соответственно код исполняю таким образом: на eVC++ написал простейший загрузчик: читает из файла массив и отдает управление на этот массив. JTAG не доступен :(

★★★★

может, сперва стоит посмотреть на первоисточник? благо, там достаточно много книг *)

http://www.arm.com/documentation/books.html

после уже искать, например, на ozon.ru - у них стало модным перепродавать оригинальные буржуйские издания с доставкой по РФ. достаточно дорого.

* нет, лично я их не заказывал и не читал.

// wbr

klalafuda ★☆☆
()

> На текущий момент я не могу отключить правильно MMU. Я делаю как в даташите. Но после этого испольняются несколько инструкций вперед (похоже кэш) и все.

AFAIU это очень сильно завязано на конкретный процессор (PXA25x от Intel, AT91RM9200 от Atmel и иже с ними). не думаю, что общая книга вам тут сильно поможет. разве что она заточена на конкретно ваш процессор, но тут скорее стоит искать Application Notes на сайте производителя.

> Нормально отлаживаться возможности нет. Экспериментирую с КПК и соответственно код исполняю таким образом: на eVC++ написал простейший загрузчик: читает из файла массив и отдает управление на этот массив.

ну как обычно, первичным "отладчиком" для подобных плат является один, улчше два, светодиода, которыми вы можете аправлять через пространство ввода/вывода тривиальными командами. дальше уже на что собственной фантазии хватит :)

> JTAG не доступен :(

ясен пень :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

До меня только сейчас дошло, что я был не прав. Ведь я записывал массив с кодом в винде. MMU еще включен и следовательно исполняется код по виртуальному адресу. Как только я выключаю MMU начинает выполняться код по тому-же физическому адресу.

То-есть необходимо перед выключением MMU разместить по какому-либо физическому адресу код и сразу после выключения отдать туда управление.

Но как разместить код по какому-либо физическому адресу пока включен MMU?

PS: довольно неплохая мода у озона. Лучще дорого чем никак.

alexru ★★★★
() автор топика
Ответ на: комментарий от klalafuda

Дело в том, что к светодиодам я доступ получаю тоже после выключения MMU. Собственно я так и определяю что выполняется, а что нет :)

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

Причем становится ясно почему не выполняется ничего если я после выключения MMU выключаю еще и кеши. Выполняться уже становится не чему :)

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

> До меня только сейчас дошло, что я был не прав. Ведь я записывал массив с кодом в винде. MMU еще включен и следовательно исполняется код по виртуальному адресу.

а это зависит от того, в каком состоянии находится процессор в тот момент, когда вы начинаете выполнять свой код. кто является "начальным загрузчиком" кода?

причём у меня есть серьезное подозрение, что если вы выполняете свой код уже в защищённом режиме (MMU включен со всеми прелестями включая защиту), то так просто выключить MMU вам не дадут :) на то она собственно и защита, и доступ к системному сопроцессору на модификацию вам не дадут.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Процессор находится в состоянии со включеным MMU (а зачем-бы я его выключал). Выключается он легко. Винда всегда находится в режиме SVC. Причем у нее можно отобрать все процессорное время. Этот код я слямзил из HaRET и он работает.

Мне просто сильно не хотелось руками править таблицы MMU. Теперь придется руками вносить отдну страницу с четко заданным физическим адресом и после выключения MMU отдавать туда управление. Не имея нормальной возможности отладки это будет забавно :) Но ничего, и не такое воротили :)

PS: Приятно иметь дело с архитектурой в которой нет атавизмов всяких как в x86. Захотелось ее поподробнее изучить.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

> Процессор находится в состоянии со включеным MMU (а зачем-бы я его выключал). Выключается он легко. Винда всегда находится в режиме SVC. Причем у нее можно отобрать все процессорное время. Этот код я слямзил из HaRET и он работает.

я так понимаю, это нечто навроде наладонника с предустановленной Windows CE или аналогом? в таком случае, IMHO правильнее не пытаться запустить свою систему из уже работающей OS, а нарисовать начальный загрузчик и сразу грузить то, что хочется.

> Мне просто сильно не хотелось руками править таблицы MMU. Теперь придется руками вносить отдну страницу с четко заданным физическим адресом и после выключения MMU отдавать туда управление.

как вариант.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Да. Это обычный КПК c WinCЕ. Я просто не знаю как (точнее куда) разместить этот загрузчик. Ну и отлаживаться так легче. В случае багов вполне работает софт-резет. А если перезаписать винду в памяти, то придется хард-резет делать.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

> Да. Это обычный КПК c WinCЕ. Я просто не знаю как (точнее куда) разместить этот загрузчик. Ну и отлаживаться так легче. В случае багов вполне работает софт-резет. А если перезаписать винду в памяти, то придется хард-резет делать.

хорошо, тогда наводящий вопрос: что собственно хочется получить в результате этих экспериментов? :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Вообще - подготовить процессор для запуска на нем ядра линукса. :) Я не фанат :) Мне просто почему-то хочется изучить архитектуру ARM на реальном устройстве. Ну и заодно системное программирование подтянуть.

Я на нем в общем-то тольео книжки в метро читаю и карту иногда смотрю. С этим и винда справляется.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

Вышла новая OPERA

Какой КПК юзаешь?

В Питере на ул. Восстания не очень давно открылся Чип-Дип: http://www.chipdip.ru/chipdip/contacts/a12/index.xtml

при входе справа на полке лежит DevKit для ARM от Atmel за 12000руб. Не пробовал, но кажется симпатичным для разработчиков на базе процессоров ARM.

binr ★★
()
Ответ на: Вышла новая OPERA от binr

RoverPC P3 :) Такой и убить не жалко.

Оно может и хорошо. Но я лучше потренируюсь на чем есть, а за DevKit-ы пусть работодатель платит (если он появится :) ), а 12000 мне жалко.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

> RoverPC P3 :) Такой и убить не жалко.

на него есть техническое описание/даташит? какие устройства внутри, где и как расположены и пр.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

В нем наворотов нет особых. Всего по-минимуму. Я его разобрал переписал названия всех микрух. Он почти 1:1 совпадает с аппнотой с сайта интела.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

> В нем наворотов нет особых.

а именно - что там есть? по пунктам. причём на конкретной [вашей] *плате*, а не процессоре.

> Всего по-минимуму.

i love this :)

> Я его разобрал переписал названия всех микрух. Он почти 1:1 совпадает с аппнотой с сайта интела.

и.. с какой именно? название, ссылку? на developer.inetl.com тысячи различных документов. предпологается, что я должен его угадать?

в общем, отличная постановка вопроса, спасибо. при такой постановке вопроса я пас :)

ps: "у меня такое то железо [ссылка на пописание], на нем такой то софт [-//-//-], я от него это и это, придумал сделать вот так, реально сделал вот это, тут что-то [что именно?] не заработало, не понимаю вот это и это". ну и так далее. ессно, это лишь "если вас интересует резальтат" (c) ММЖ.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Вот тут схема (example from factor....).

http://developer.intel.com/design/pca/applicationsprocessors/manuals/278694.htm

Все в том-же комплекте что и на схеме. Возможно небольшое отклонение в том смысле что кнопки подключены к другим GPIO.

Ну и разъема JTAG на плате нет соответственно.

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

GPIO всех кнопок, светодиодов известны (реальные).

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

alexru (*) (10.10.2005 12:40:29)

Я бы и КПК пожалел убить :)

По поводу работадателя полнотью согласен :)

binr ★★
()
Ответ на: комментарий от alexru

(10.10.2005 13:40:24)

>Ну и разъема JTAG на плате нет соответственно.

Тогда через какой интерфейс и каким софтом ты загружаешь образ на флеш?

binr ★★
()
Ответ на: (10.10.2005 13:40:24) от binr

Никаким. Загружается винда, средствами винды читаю бинарник и загружаю его в память, после чего винда выкидывается нафиг.

alexru ★★★★
() автор топика
Ответ на: (10.10.2005 13:40:24) от binr

> Тогда через какой интерфейс и каким софтом ты загружаешь образ на флеш?

AFAIU пока что автор ничего и никуда не загружает, а запускает свой код в виде пользовательской задачи в предустановленной WinCE. имея желание её, CE, прибить нафик после запуска и после работать на "голой" системе.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от alexru

> Никаким. Загружается винда, средствами винды читаю бинарник и загружаю его в память, после чего винда выкидывается нафиг.

использовать предустановленный WinCE как начальный загрузчик Linux конечно же можно, но IMHO это мягко говоря муторно с непонятным результатом в конце. обычно белые люди сперва полностью разбираются со своим железом и процессом начальной загрузки системы и лишь потом от этого пляшут загружая то, что им нужно. если полцесс начальной загрузки конкретной железки закрыт/непонятен (охотно верю) стоит, наверное, поменять железку на что-то более дружественное к разработчику.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Хороший совет "на что-то более дружественное к разработчику".

Вот только что?

binr ★★
()
Ответ на: комментарий от klalafuda

Не совсем так. На текущий момент я хочу добиться не запуска линукса, а уверенного исполнения моего кода. Это нужно для дальнейшего исследования работы устройства (все естественно закрыто). И в дальнейшем, после понимания чего и как - сделать как белые люди.

Ну в тепличных условиях конечно разработка идет легче и приятнее, но не всегда в жизни бывают тепличные условия.

alexru ★★★★
() автор топика
Ответ на: комментарий от binr

Пробовал. Ровер молчит.

Пробовал писать в mitac (именно их и клонировали). Mitac ответили, что информация закрытая. И тучу какого-то гона про нарушение гарантии :))))

alexru ★★★★
() автор топика
Ответ на: комментарий от alexru

> Пробовал. Ровер молчит. Пробовал писать в mitac (именно их и клонировали). Mitac ответили, что информация закрытая. И тучу какого-то гона про нарушение гарантии :))))

прямое следствие этого ответа: производитель позиционирует свои железки как законченные устройства, не подлежащие модификации пользователем [вне зависимости от его любознательности] -> вы просто ошиблись с выбором железки. btw это отнюдь не вина производителя, ибо он экономит на всём, включая ненужную при данном подходе техподдержку вас в том числе.

если есть желание серьезно поиграться/разобраться с ARM [любой другой системой] - возьмите уже готовый Development Kit. они специально предназначены именно для этого включая [полную] техническую документацию на железо/интерфейсы/etc | скорее всего поддержку в течении какого то разумного срока и пр радости, так сильно облегчающие жизнь.

в РФ подобный настольный игровой стенд обойдётся баксов в 300..500 в зависимости от вендора, наполнения, наценок у диллера и фазы луны. зато с этим уже можно действительно работать.

ps: нет, я воздержусь от рекомендаций чего-то конкретного в плане DK. нелюблю, когда потом приходится за это отдуваться :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

> ps: нет, я воздержусь от рекомендаций чего-то конкретного в плане DK. нелюблю, когда потом приходится за это отдуваться :)

впрочем.. http://www.netbsd.org/Ports/evbarm/

от себя могу лишь добавить, что у Arcom (http://www.arcom.co.uk/) грамотные технические специалисты и хорошие сейлзы.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от alexru

ps: от себя лишь добавлю - изыщите способ найти хороший Development Kit. даже когда он у вас уже стоит на столе со всеми рюшечками, даташитами и пр. радостями, вы всё равно нахлебаетесь с этой железкой по полной программе. *всегда* что-то не сходится в железе, где-то опечатка в документации или просто устаревшая информация, где-то живет [хорошо если один] баг желтолицых братьев по разуму в чипсете ввода/вывода и нифига не работает и так далее и тому подобное. so даже на специально предназначенном для тестов стенде всегда есть проблемы и нужно иметь недюжее терпение и желание со всем этим барахлом разбираться. в ситуации же, когда ваше железо полностью закрыто и никем не поддерживается, проще или застрелиться или бросить это дело нафик бо реально это никому не нужно. берегите ваши нервные клетки, они не восстанавливаются :)

pps: впрочем, может быть есть в природе идеальные дизайни но мне они просто не попадались. "будем искать" (c)..

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Ссылки очень интересные :)

Особенно производит впечатление список ОС с которыми работает фирма:

Arcom has integrated the leading embedded operating systems, including Windows CE .NET, XP Embedded, NT Embedded, embedded Linux (with Java technology), RedBoot, VxWorks, QNX and ROM-DOS to create ready-to-run, rapid application development kits.

Как правило все фирмы, которые делают девайсы с pxa255 ограничиваются поддержкой WinCE и Linux.

respect!

binr ★★
()
Ответ на: комментарий от klalafuda

На 330 баксов, при покупке дев кита, разорится сможеш? Тогда я тебе и железку порекомендую, и граблями поделюсь :) если что.

bizon_art
()
Ответ на: комментарий от klalafuda

Поэто мне иногда кажется, что проще собрать свой девайс из микросхем, поэтому и привёл ссылку на чип-дип. Хотя сам не пробовал, у работадателя нет в этом необходимости :(

binr ★★
()
Ответ на: комментарий от bizon_art

> На 330 баксов, при покупке дев кита, разорится сможеш? Тогда я тебе и железку порекомендую, и граблями поделюсь :) если что.

спасибо, у меня уже есть на базе ARMCORE от CompuLab :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от binr

> Поэто мне иногда кажется, что проще собрать свой девайс из микросхем, поэтому и привёл ссылку на чип-дип.

боюсь, что это отнюдь не проще :) тем более для более-менее навороченных процессоров в BGA корпусе. мы как-то оценивали разработку и отказались, потому что долго и в мелких партиях очень дорого по сравнению с готовыми платами, даже с учётом наличия опыта/базы по монтажу и наладки различного железа и пр. радостей жизни. а для настольных игр вообще бесполезно.

> Хотя сам не пробовал, у работадателя нет в этом необходимости :(

IMHO самый грамотный путь - оформить свое стремление к изучению во что-то более осязаемое и понятное, и заразить этим, допустим, вашего работодателя. заодно разрелив с ним бремя финансовых расходов на :) зато если выгорит и ему и вам польза.

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

>боюсь, что это отнюдь не проще :) тем более для более-менее навороченных процессоров в BGA корпусе. мы как-то оценивали разработку и отказались, потому что долго и в мелких партиях очень дорого по сравнению с готовыми платами, даже с учётом наличия опыта/базы по монтажу и наладки различного железа и пр. радостей жизни. а для настольных игр вообще бесполезно.

С настольными играми всё не очень хорошо. Хотя последователи alexru что-то сделали: http://handhelds.org/projects/rover.html В одном из номеров журнала "компоненты и технологии" утверждалось, что якобы микросхемы ARM уже стоят почти как 8-мибиные контроллеры ;) но я не знаю как на самом деле.

На данный момент есть возмозможность заниматься изучением без привлечения финансовых средств. Когда вопрос встанет будем думать.

binr ★★
()
Ответ на: комментарий от binr

> В одном из номеров журнала "компоненты и технологии" утверждалось, что якобы микросхемы ARM уже стоят почти как 8-мибиные контроллеры ;) но я не знаю как на самом деле.

1) "микросхемы ARM" понятие очень растяжимое. какая архитектура ARM? производитель? начинка если это SoC? ну и так далее.
2) как обычно, "в партиях от 1000 штук". для настольного применения это несколько многовато :)
3) CPU - это лишь часть конечного продукта в виде готовой платы. и не всегда самая дорогая :)

// wbr

klalafuda ★☆☆
()
Ответ на: комментарий от klalafuda

Хм... Видимо я погорячился по поводу ARM...

Первоисточник: журнал "компоненты и технологии", номер 3 2005г. стр. 150

В статье сотрудник фирмы http://www.eltach.spb.ru , ссылается на http://www.ee.nec.de сравнивает 8-ми битный микроконтроллер и 32-разрядный V850ES (серия K_Line)

ssory за дезинформацию :(

binr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.