MSprut 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба Долгое время работал с АТ90 и Atmega AVR, но вот пришел день, когда появилась необходимость ставить ARM. В проекте есть ЖКИ 320х240 с тач-панелью и кусок автоматики. Если делать на меге, то придется ставить 2 проца - один на ЖКИ, один на автоматику и вот я решил поставить SAM7S256, но... Начитавшись всяких описаний и форумов увидел что не все так сказочно. Много новых, непонятных для моего мозга наворотов, типа ремапа, регистров, которые туда-сюда между режимами бродят и прочего бутора. Использовать планировал компилятор IAR, но загрузив пару примеров не смог провести для себя параллель между Atmega и ARM-ом. Мозг пытается найти привычные вещи, а что-то их нету. Я бы эту тему не поднимал, если бы не сжатые сроки для проекта - до января нужно чтобы он хоть как-то начал жить, и всю обвеску, кроме проца, уже наваял, готовлюсь плату развести, а с самим процем в ступоре. И Мегу ставить не хочется, потому что для ЖКИ не смогу ничего путнего в неё впихнуть и не знаю сколько мне понадобится для освоения SAM7S256. Короче в голове полная каша. Не могу понять что нужно делать, а что не нужно чтобы все это сразу заработало, как на меге, т.е. создал проект, подключил заголовичники, создал пару функций и чтобы это сразу завелось. Куда что ремапить нужно или не нужно и т.д. Может кто из уважаемых форумчан растолкует мне чего я не могу понять в ARM-е, хотя бы для того чтобы определится ставить этот проц или забить на все и ставить две меги с внешней памятью и т.д, потому что не реально за 1 месяц заставить ARM как-то работать? Буду очень признателен. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xelax 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба Возможно я подзабыл, но разве IAR сам не цепляет к проекту стартапный код. Где уже есть раскладка векторов, выделение стека, ремап и прочие стартовые вещи. А девелоперу надо только написать пару функций. По крайней мере я так начинал, правда на lpc2106. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MSprut 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба За IAR для ARM ничего не могу сказать, в стартапе для авр у меня только очистка памяти была. Но там и лишних телодвижений не нужно было, все работало сразу Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
anpilog 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба По собственному опыту скажу. В принципе для не сверх сложной задачи, можно стартонуть и без ремапов и т.п. непонятных вещей. За месяц можно вполне толково разобраться в нужной переферии для ваянии несложных проектов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MSprut 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба Ну нужно будет работать с АЦП, с таймером, SPI и порт 32-х битный как-то поделить на всех. ЖКИ блин 8-и битный. В АРМе можно с 8-и битными данными работать или нет. Какой режим использовать лучше на старте, АРМ или Тумб? Можно это все запускать без JTAG? А еще у меня самая первая версия SAM7S256 из партии 58818С с багами во флеш, еще где-то. Куплен давно и только сейчас может найтись ему применение. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IV_K 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба в арме главное мышление на 32 бита перевести =) остальное приложится.. режим арм или тумб пофик какой, для сишного кода оно не так важно, с 8-ми битными данными работать так же как всегда, без житага работать можно, есть такая замечательная вещь, как samba - загрузчик по юсб и компорту. но житаг советую купить, с ним намного проще Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MSprut 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба Ну с 32-х битными регистрами понятно, и с переменными такой же длины а вот с переменными меньшей длины чето не очень пока. Или компилятор допускает использование переменных короче чем разрядность проца? И с портом получается придется работать по маске. В АВРке разрядность портов и данных совпадала и можно было целиком пихать все в порт, а тут получается по маске вытер, по маске записал. Еще не понятно что за прикол с выполнением функций из SRAM? Я привык что все во флеш компилится и оттуда же выполняется, а тут на каждом шагу стереотипы ломают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zhevak 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 (изменено) · Жалоба Наверно я ретроград. Будь я на Вашем месте, я бы все-таки выбрал реализацию на том, что знаешь хорошо. И вот почему. Постулат №1. Вашему заказчику (т.е. тому, кто платит Вам деньги), на сколько я понял из вашего сообщения, без разницы на чем будет построен девайс -- на АРМе-ли, на АВРке-ли. Ему нужен конечный результат. Заказчик платит за конечный результат. Постулат № 2. Ваша цель -- заработать деньги. Ну так и зарабатывайте! Ничто Вам не мешает. Нехватает "прыгучести" АВР-ки, возьмите две, три штуки, назначьте им конкретные задачи и свяжите их по какой-нибудь шине. Выиграете и по времени разработки, и по скорости работы устройства в целом. Что АВР-ки, что АРМ-ы -- стоят сейчас копейки, соизмерьте их стоимость со стоимостью своего рабочего часа. А времени, как я понял, у Вас -- месяц. Ну и на чем вы сэкономите? На паре микросхем? Помните, старые туфли ноги не трут, а Вам предстоит ответственный забег за деньгами. Что Вы выберите? Если Вам не важен результат, на деньги Вы не повязаны, тогда смело выбирайте АРМ. Освоите новый камень. И еще. Не надо смотреть на мир АРМов глазами АВР/i51/i8080/i86. Это абсолютно другой мир. Разница между мирами даже не в разрядности и тактовой частоте, а совсем в друом. Пока Вы сами не поработаете с той и с другой архитектурой, пока не познаете ту и другую философию, Вы не будете в состоянии сделать правильный выбор. Искренне желаю удачи Вам! Изменено 21 ноября, 2007 пользователем zhevak Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MSprut 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба Спасибо, доходчивая мотивация. Тут как раз вариант №4: важен рельтат и время, но на деньги я не завязан. Хотя больше меня привлекает вариант с установкой 2-х АВР-ок, но тогда, думаю, придется забыть про нормальный GUI-евый интерфейс, а хотелось бы заложится на него, если не сразу написать, то в перспективе чтобы мощи хватило. Вот и мучаюсь с выбором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IV_K 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба при использовании переменных меньшей длины отдельно - каждая будет занимать 32 бита, в виде структур можно задать упаковку (в иаре смотреть #pragma pack) разрядность портов и данных тут тоже совпадает =)) с PIO в сам7 работать кстати удобно, надо только привыкнуть.. и еще.. арм НЕ НОГОДРЫГАЛКА =) на работу с периферией нужно много тактов, поэтому там куча аппаратных наворотов типа DMA. насчет выполнения команд из рамы.. в арме адресное пространство в отличие от авров ОДНО и ЛИНЕЙНО, поэтому процу вобще пофик откуда выполнять команды и откуда брать данные. для запуска функций из рам их сначала надо туда скопировать из флеши, для этого есть в иаре __ramfunc - копирует в рам код стартапа, ну или ручками копировать.. код из рамы выполняется БЫСТРЕЙ, чем из флеш. и еще преимущество.. код из рамы может выполняться во время стирания/записи флеши, удобно для загрузчиков p.s. за меся КАК-ТО работать сам7 заставить можно, но написать с нуля целевую программу нереально Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 2 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба ... не реально за 1 месяц заставить ARM как-то работать? За месяц - реально, только если вместо задаваемых здесь риторических вопросов потратите день на изучение архитектуры и чтение вопросов/ответов ранее задаваемых на этом форуме Вашими предшественниками. Ну и если настрой будет другой - за здравие а не за упокой. Я в свое время ровно за два выходных дня начал, отпортировал минимальные начальные вещи со 186 на ARM и получил стартовый результат. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 136 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба Будь я на Вашем месте, я бы все-таки выбрал реализацию на том, что знаешь хорошо. И вот почему.Категорически не согласен. Если человек имеет достаточно опыта, чтобы реализовать описанный проект хотя бы на меге - освоение ARMа на уровне, достаточном для написания того же займет пару дней - неделю. Надо только не лениться читать документацию. А возможности системы на ARMе будут гораздо выше. Плюс человек получит мощный инструмент в своем арсенале. Пока не нужен загрузчик - не нужно заморачиваться о всяких ремапах, стартапах - в библиотеках компилятора уже все сделано. Про переменные меньшей, чем 32 бита длины: Во-первых система команд поддерживает работу с 8- и 16-битными данными. В С просто объявляете uint8_t, uint16_t, uint32_t или unsigned char, unsigned short, unsigned long и получаете данные нужной длины. По запись байта в порт - у портов SAM7 есть набор регистров OWER, OWDR, OWSR, в которых вы можете указать, какие именно биты будут писаться в порт при записи в ODSR. Вы можете указать необходимые 8 бит и писаться в порт будут именно они. Резюме - не так страшен черт. при использовании переменных меньшей длины отдельно - каждая будет занимать 32 бита,Где вы такое вычитали? Каждая переменная будет занимать столько места, каков ее размер. Другое дело, что начальные адреса переменных выравниваются - 4-байтных на 4 байта, 2-байтных на 2 байта. Поэтому long, char, char, short и long, char, short, char займут 8 и 9 байт, а не 16 как следует из вашего утверждения. С остальным соглаcен. p.s. за меся КАК-ТО работать сам7 заставить можно, но написать с нуля целевую программу нереальноЗадача формулировалась несколько иначе - "до января нужно чтобы он хоть как-то начал жить", а это, на мой взгляд, вполне реально. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IV_K 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 · Жалоба Где вы такое вычитали? Каждая переменная будет занимать столько места, каков ее размер. Другое дело, что начальные адреса переменных выравниваются - 4-байтных на 4 байта, 2-байтных на 2 байта. Поэтому long, char, char, short и long, char, short, char займут 8 и 9 байт, а не 16 как следует из вашего утверждения. звиняюсь, фигню сказал.. хотел про упаковку структур сказать, но что-то не то вышло =) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MSprut 0 21 ноября, 2007 Опубликовано 21 ноября, 2007 (изменено) · Жалоба Убедили, всем большое спасибо. Закладываю АРМ... Изменено 21 ноября, 2007 пользователем MSprut Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться