Перейти к содержанию
    

как прошить AT91SAM7S256

Уважаемый alexan300!

Каша у вас в голове полная. JTAG какое имеет отношение к получению bin-файла? Абсолютно никакого. Как формируется бинарный файл? Вам хоть это понятно? А когда этот самый bin-файл получен ваша задача его загрузить в процессор и эту программу стартануть.

Вам уважаемый aaarrr дал классное решение - залить готовый bin-файл, так и залейте его для начала. А вы нам опять про то, как программа компилируется, компонуется. Вы хоть научитесь готовый файл грузить и стартовать. Потом перейдем к дальнейшим разборам полетов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Каша у вас в голове полная. JTAG какое имеет отношение к получению bin-файла? Абсолютно никакого.

это я понял!! Джатаг не имеет отношения!! Каши нет) глава где описывалось подключения стартапа была отнесена к джатагу!! поэтому я неанимательно смотрел ту часть. А так как раз про линкер и его установки описывалось!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

УРА уважаемые ура! фаил бин, прикладеный в скаченом с саита олимекса, заставил моргать ногу, естествено я решил вникнуть глубже в вопросы програмирования мк и открыл полностью проект..попытался для начала его скомпелировать..выскачела ошибка со ссылкои на фаил Cstartup.s79..я его отклыл в блокноте и увидил, что упоминается там исключительно "Generic CStartup to AT91SAM7S64"

я же использую 256 процессор.

я так понимаю, что для компилятора и процессора это не одно и тоже? регистры там разные, память??

если я изменю все в фаиле с ......64, на .....256, это мне не поможет?да.

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

..простите за делитанские вопросы)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выскачела ошибка со ссылкои на фаил Cstartup.s79

...

если я изменю все в фаиле с ......64, на .....256, это мне не поможет?

Вы бы лучше сообщение об ошибке сразу процитировали, а то остается только гадать, в чем могло быть дело.

 

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

Стартап - часть программы. Вопрос не понял, если честно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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.

переформулирую ранее заданый вопрос.. стартап универсален для одного типа мк., а для другого мк нужен другои стартап?

стартап- это часть программы отвечающая за инициализацию одного типа мк?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

переформулирую ранее заданый вопрос.. стартап универсален для одного типа мк., а для другого мк нужен другои стартап?

Почитайте чужой опыт приручения прцессора ARM - http://microsin.ru/content/view/653/1/ - где-то на пункте 34 затрагивается тема startup.

 

У меня программа скомпилированная для 64-го вполне работала в старших моделях - пока не заморачивайтесь. У вас ошбки не из-за этого.

 

{offtopis on}Мне вот не понять, как можно столько времени бится головой об стену? У меня ножкой процессор начал махать где-то через пару часов после того, как я при наличии jtag программатра wiggler и спаянного на макетке просессора начал править под свои нужды startup, шедьший в примерах к yagarto (автор, в свою очередь, жестоко правил под себя соответствующий файл от NutOS).

Уже потом я задавался вопросами - а правильно ли я программирую тактовый генератор и тому подобными вопросами (о чём я на этом форуме справшивал и мне конкретно помогли). Ну ведь готовые проекты есть, если не понятно что-то с настройками - оставьте изменение ключиков компилятора и опций проекта на тот момент, когда всё заработает!

{offtopis off}

 

Вспомнился баннер в песочнице - "бригада опытных телепатов ответит на все ваши вопросы". Вам ассемблер указал на номера строк. Что за инструкции в этих строках (и предшествующих) находится? Привели бы, не у всех IAR стоит.

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот что пишит компилятор..

По всей видимости проект не предназначен для вашей версии ИАРа.

 

я думаю что фаил, на который компилятор ссылается предназнчен для ....64 проца. а у меня ...s256.

Поверьте, на данном этапе это совершенно не важно. Отличаются они только обемами флеш и ОЗУ, любая программа для 64-го обязана работать на 256-м.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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-го вполне работала в старших моделях - пока не заморачивайтесь. У вас ошбки не из-за этого.

Я про это и пишу, что скаченный пример решил просто откомпелировать, и создать бин фаил для прошивки, сначало ничего не меняя...а мне ошибки..бин фаил приложеный в примере успешно все прошил.

если бы бинарник успешно создался и прошил бы МК, то следующим шагом я начал б потихоньку что то менять, отслеживая возникающии ошибки, и имея увереность что все библиотеки у меня подключены а также есть рабочии стартап...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я про это и пишу, что скаченный пример решил просто откомпелировать, и создать бин фаил для прошивки, сначало ничего не меняя...а мне ошибки..бин фаил приложеный в примере успешно все прошил.

Есть предложение найти проект соответствующий версии компилятора, что у Вас есть. Или заставить среду создать проект под Ваш процессор, компилирующийся без ошибок (возможно, с пустой функцией main) и вбить в него обльно валяющиеся даже на этом форуме последовательности инициализации порта на вывод и мерцания светодиодом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть предложение найти проект соответствующий версии компилятора, что у Вас есть. Или заставить среду создать проект под Ваш процессор, компилирующийся без ошибок (возможно, с пустой функцией main) и вбить в него обльно валяющиеся даже на этом форуме последовательности инициализации порта на вывод и мерцания светодиодом.

Тут либо проект компилирующиися без ошибок и бесполезный так как нету стартапа, либо рабочии бинарник, но со стартапом не работающим в моеи среде))

последовательность инициализации порта может и валяется где то, но она сплош а асемблере.

луше б эту пследовательность фаиликом отдельным к проекту вешать и не лазить в его нутро до лучших времен.

Не подскажите, можно ли ИАРом этот стартап создать для моего процессора.

РС. это мои первый опыт знакомства с МК.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Держите на 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;
}

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не бывает проекта без startup'a! Поймите, наконец, что любой процессор должен быть настроен на работу + должны быть выполнены некоторые ритуальные действия, необходимые для работы собственно программы (принято для С/С++ что программа начинается в модуле main()). Масса молодых программистов развращена интегрированными средами и не хочет разобраться в порядке работы с компилятором, линкером и прочими, не очень сложными вещами. Могу сообщить вам страшный секрет - в MS Visual Studio и в Borland Builder'e тоже есть startup модули.

 

У вас сейчас проблема с ассемблерным файлом. Что так сложно посмотреть, что там IAR в разных версиях такого разного требует в синтаксисе ассемблерных модулей? Ведь действительно, примеров масса. Скорее всего надо будет поправить пару строк.

 

Кто вам сказал, что настройка аппаратных средств процессора может быть написана только на ассемблере? Я же вам давал ссылку на библиотеки Atmel'a - там примеры почти на все случаи жизни. Все на С, кроме некоторых вещей (таких, какие как раз программируются в startup'e) , которые не написать на языке высокого уровня. Читайте, изучайте. Никто за вас это не сделает.

 

P.S. А как настроить порт на вывод на С я уже несколько выше писал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Большое спасибо..попробывал..

программа на мк не запускается..

#define WORKMASK AT91C_PIO_PA8

замениел на 8..

по моему без стратапа ну никак((

компилируется нармально с одним предупреждением.

бинарник выходит., в мк записывается, но не выполняется((

 

Не бывает проекта без startup'a! Поймите, наконец, что любой процессор должен быть настроен на работу + должны быть выполнены некоторые ритуальные действия, необходимые для работы собственно программы (принято для С/С++ что программа начинается в модуле main()). Масса молодых программистов развращена интегрированными средами и не хочет разобраться в порядке работы с компилятором, линкером и прочими, не очень сложными вещами.

так примеры то я смотрел и скачал с олимекса..

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

все верно проблемма в ассемблерном коде, туда и кивает компилятор..но лучше былаб проблемма в Си коде..больше шансов разобраться, а асемблер это лес густои (

RSEG INTRAMEND_REMAP ;- Begins a relocatable segment

ORG 0 ;- Sets the location counter

ну вот что он мне хочет этим сказать??

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...