sergeeff 1 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба Уважаемый alexan300! Каша у вас в голове полная. JTAG какое имеет отношение к получению bin-файла? Абсолютно никакого. Как формируется бинарный файл? Вам хоть это понятно? А когда этот самый bin-файл получен ваша задача его загрузить в процессор и эту программу стартануть. Вам уважаемый aaarrr дал классное решение - залить готовый bin-файл, так и залейте его для начала. А вы нам опять про то, как программа компилируется, компонуется. Вы хоть научитесь готовый файл грузить и стартовать. Потом перейдем к дальнейшим разборам полетов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба Каша у вас в голове полная. JTAG какое имеет отношение к получению bin-файла? Абсолютно никакого. это я понял!! Джатаг не имеет отношения!! Каши нет) глава где описывалось подключения стартапа была отнесена к джатагу!! поэтому я неанимательно смотрел ту часть. А так как раз про линкер и его установки описывалось!! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба это я понял!! Ну раз все понял, так почему до сих пор LED не моргает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба Понял это в теории)) а не моргает потому что щас не с компьютером и отладочной платои., а вожу жену по магазинам и в перерывах пока она шопингом развлекается я с мобильника выхожу и смотрю на форум. Но все что мне написали обязательно испробую в рамках своего понимания! ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба УРА уважаемые ура! фаил бин, прикладеный в скаченом с саита олимекса, заставил моргать ногу, естествено я решил вникнуть глубже в вопросы програмирования мк и открыл полностью проект..попытался для начала его скомпелировать..выскачела ошибка со ссылкои на фаил Cstartup.s79..я его отклыл в блокноте и увидил, что упоминается там исключительно "Generic CStartup to AT91SAM7S64" я же использую 256 процессор. я так понимаю, что для компилятора и процессора это не одно и тоже? регистры там разные, память?? если я изменю все в фаиле с ......64, на .....256, это мне не поможет?да. и еще впрос.стартапа достаточно одного для мк, или же для каждои программы прошиваемои в мк, стартап необходимо переделывать?? или же все зависит от того, в какои участок памяти я записываю бин фаил? ..простите за делитанские вопросы) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба выскачела ошибка со ссылкои на фаил Cstartup.s79 ... если я изменю все в фаиле с ......64, на .....256, это мне не поможет? Вы бы лучше сообщение об ошибке сразу процитировали, а то остается только гадать, в чем могло быть дело. да. и еще впрос.стартапа достаточно одного для мк, или же для каждои программы прошиваемои в мк, стартап необходимо переделывать?? или же все зависит от того, в какои участок памяти я записываю бин фаил? Стартап - часть программы. Вопрос не понял, если честно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба Error[116]: Section type missing C:\IAR\demmo\iar\AT91SAM7_H256_BLINKING_LED\Cstartup.s79 36 Error[40]: Bad instruction C:\IAR\demmo\iar\AT91SAM7_H256_BLINKING_LED\Cstartup.s79 41 Warning[24]: ENDMOD directive is ignored (only one module is allowed) C:\IAR\demmo\iar\AT91SAM7_H256_BLINKING_LED\Cstartup.s79 267 Error while running Assembler вот что пишит компилятор..я думаю что фаил, на который компилятор ссылается предназнчен для ....64 проца. а у меня ...s256. переформулирую ранее заданый вопрос.. стартап универсален для одного типа мк., а для другого мк нужен другои стартап? стартап- это часть программы отвечающая за инициализацию одного типа мк? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 4 ноября, 2009 Опубликовано 4 ноября, 2009 (изменено) · Жалоба переформулирую ранее заданый вопрос.. стартап универсален для одного типа мк., а для другого мк нужен другои стартап? Почитайте чужой опыт приручения прцессора ARM - http://microsin.ru/content/view/653/1/ - где-то на пункте 34 затрагивается тема startup. У меня программа скомпилированная для 64-го вполне работала в старших моделях - пока не заморачивайтесь. У вас ошбки не из-за этого. {offtopis on}Мне вот не понять, как можно столько времени бится головой об стену? У меня ножкой процессор начал махать где-то через пару часов после того, как я при наличии jtag программатра wiggler и спаянного на макетке просессора начал править под свои нужды startup, шедьший в примерах к yagarto (автор, в свою очередь, жестоко правил под себя соответствующий файл от NutOS). Уже потом я задавался вопросами - а правильно ли я программирую тактовый генератор и тому подобными вопросами (о чём я на этом форуме справшивал и мне конкретно помогли). Ну ведь готовые проекты есть, если не понятно что-то с настройками - оставьте изменение ключиков компилятора и опций проекта на тот момент, когда всё заработает! {offtopis off} Вспомнился баннер в песочнице - "бригада опытных телепатов ответит на все ваши вопросы". Вам ассемблер указал на номера строк. Что за инструкции в этих строках (и предшествующих) находится? Привели бы, не у всех IAR стоит. Изменено 4 ноября, 2009 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба вот что пишит компилятор.. По всей видимости проект не предназначен для вашей версии ИАРа. я думаю что фаил, на который компилятор ссылается предназнчен для ....64 проца. а у меня ...s256. Поверьте, на данном этапе это совершенно не важно. Отличаются они только обемами флеш и ОЗУ, любая программа для 64-го обязана работать на 256-м. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба PROGRAM ?RESET ;- Begins a program module RSEG INTRAMEND_REMAP ;- Begins a relocatable segment RSEG ICODE:CODE (2) ;- Begins a relocatable segment ; corresponding address is 32-bit aligned PUBLIC __program_start CODE32 ;- Always ARM mode after reset ORG 0 ;- Sets the location counter ; corresponds to the RESET vector address ;------------------------------------------------------------------------------ ;- Exception vectors ;------------------------------------------------------------------------------ ;- These vectors can be read at address 0 or at RAM address вот на эти пункты ссылается... У меня программа скомпилированная для 64-го вполне работала в старших моделях - пока не заморачивайтесь. У вас ошбки не из-за этого. Я про это и пишу, что скаченный пример решил просто откомпелировать, и создать бин фаил для прошивки, сначало ничего не меняя...а мне ошибки..бин фаил приложеный в примере успешно все прошил. если бы бинарник успешно создался и прошил бы МК, то следующим шагом я начал б потихоньку что то менять, отслеживая возникающии ошибки, и имея увереность что все библиотеки у меня подключены а также есть рабочии стартап... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба Я про это и пишу, что скаченный пример решил просто откомпелировать, и создать бин фаил для прошивки, сначало ничего не меняя...а мне ошибки..бин фаил приложеный в примере успешно все прошил. Есть предложение найти проект соответствующий версии компилятора, что у Вас есть. Или заставить среду создать проект под Ваш процессор, компилирующийся без ошибок (возможно, с пустой функцией main) и вбить в него обльно валяющиеся даже на этом форуме последовательности инициализации порта на вывод и мерцания светодиодом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба Есть предложение найти проект соответствующий версии компилятора, что у Вас есть. Или заставить среду создать проект под Ваш процессор, компилирующийся без ошибок (возможно, с пустой функцией main) и вбить в него обльно валяющиеся даже на этом форуме последовательности инициализации порта на вывод и мерцания светодиодом. Тут либо проект компилирующиися без ошибок и бесполезный так как нету стартапа, либо рабочии бинарник, но со стартапом не работающим в моеи среде)) последовательность инициализации порта может и валяется где то, но она сплош а асемблере. луше б эту пследовательность фаиликом отдельным к проекту вешать и не лазить в его нутро до лучших времен. Не подскажите, можно ли ИАРом этот стартап создать для моего процессора. РС. это мои первый опыт знакомства с МК. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 4 ноября, 2009 Опубликовано 4 ноября, 2009 (изменено) · Жалоба Держите на C. Подставить имя бита, который можете посмотреть осциллографом. #include "AT91SAM7S64.h" /* Главная функция программы */ int main(void) { AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS; // запретить сторожевую собаку #define WORKMASK AT91C_PIO_PA15 // битовая маска, определяет каким выводом шевелить AT91C_BASE_PMC->PMC_PCER = (1UL << AT91C_ID_PIOA); // enable periph clock for PIO controller AT91C_BASE_PIOA->PIO_PPUDR = WORKMASK; // disable pull-up resistors AT91C_BASE_PIOA->PIO_OER = WORKMASK; // эти выводы на вывод for (;;) { AT91C_BASE_PIOA->PIO_SODR = WORKMASK; AT91C_BASE_PIOA->PIO_CODR = WORKMASK; } #undef WORKMASK return 0; } Изменено 4 ноября, 2009 пользователем Genadi Zawidowski Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба Не бывает проекта без startup'a! Поймите, наконец, что любой процессор должен быть настроен на работу + должны быть выполнены некоторые ритуальные действия, необходимые для работы собственно программы (принято для С/С++ что программа начинается в модуле main()). Масса молодых программистов развращена интегрированными средами и не хочет разобраться в порядке работы с компилятором, линкером и прочими, не очень сложными вещами. Могу сообщить вам страшный секрет - в MS Visual Studio и в Borland Builder'e тоже есть startup модули. У вас сейчас проблема с ассемблерным файлом. Что так сложно посмотреть, что там IAR в разных версиях такого разного требует в синтаксисе ассемблерных модулей? Ведь действительно, примеров масса. Скорее всего надо будет поправить пару строк. Кто вам сказал, что настройка аппаратных средств процессора может быть написана только на ассемблере? Я же вам давал ссылку на библиотеки Atmel'a - там примеры почти на все случаи жизни. Все на С, кроме некоторых вещей (таких, какие как раз программируются в startup'e) , которые не написать на языке высокого уровня. Читайте, изучайте. Никто за вас это не сделает. P.S. А как настроить порт на вывод на С я уже несколько выше писал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexan300 0 4 ноября, 2009 Опубликовано 4 ноября, 2009 · Жалоба Большое спасибо..попробывал.. программа на мк не запускается.. #define WORKMASK AT91C_PIO_PA8 замениел на 8.. по моему без стратапа ну никак(( компилируется нармально с одним предупреждением. бинарник выходит., в мк записывается, но не выполняется(( Не бывает проекта без startup'a! Поймите, наконец, что любой процессор должен быть настроен на работу + должны быть выполнены некоторые ритуальные действия, необходимые для работы собственно программы (принято для С/С++ что программа начинается в модуле main()). Масса молодых программистов развращена интегрированными средами и не хочет разобраться в порядке работы с компилятором, линкером и прочими, не очень сложными вещами. так примеры то я смотрел и скачал с олимекса.. бинарник работает, но вот проект который этот бинарник создал у производителя, у меня ну никак не хочет компилироваться.. все верно проблемма в ассемблерном коде, туда и кивает компилятор..но лучше былаб проблемма в Си коде..больше шансов разобраться, а асемблер это лес густои ( RSEG INTRAMEND_REMAP ;- Begins a relocatable segment ORG 0 ;- Sets the location counter ну вот что он мне хочет этим сказать?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться