Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как прошить AT91SAM7S256
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Страницы: 1, 2, 3
alexan300
Форумчане!! подскажи те плз!!! спать уже не могу спокоино, как мне "сказать" МК что бы он выполял программу из флеш памяти? и что такое старт ап? где он находится? использую сам ба v2.9 и IAR .
aaarrr
Цитата(alexan300 @ Nov 2 2009, 21:40) *
ДА! если я правильно понял то управление передать можно нажатием однои из следующих кнопок :
DISABLE BRAWN OUT DIREKTOR
...

Brown Out Detector. Ни одна из упомянутых кнопок управление никуда не передает.

Цитата(alexan300 @ Nov 2 2009, 21:40) *
в книге Редькина не нашел ничего про это..
там указано..для таго что бы перевести МК в выполнение программы из флеш, выберети пункт Bootfrom flash у меня нету одноименнои кнопки((

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

Цитата(alexan300 @ Nov 3 2009, 22:37) *
...как мне "сказать" МК что бы он выполял программу из флеш памяти?

Никак. SAM7S всегда стартует из флеш. Точка.

Цитата(alexan300 @ Nov 3 2009, 22:37) *
и что такое старт ап? где он находится?

Файл, содержащий низкоуровневую инициализацию. Вообще-то должен быть частью проекта. Называтся может *startup*.s*


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

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

а так же SAM7S64 глава 40.2, правда производитель не олимекс и мк у меня не 64 а 256.

Никак. SAM7S всегда стартует из флеш. Точка.

отлично!
Файл, содержащий низкоуровневую инициализацию. Вообще-то должен быть частью проекта. Называтся может *startup*.s*

хмм...его то и нету(((
зато есть Cstartup_SAM7.pbi,Cstartup_SAM7.r79.
пример как раз оттуда))
что бы подключить стартап необходимо include "Cstartup_SAM7.r79" и добавит в проет эту библитэку??)

И вообще, у Олимекса же лежит на сайте пример "мигателя светодиодом" под вашу плату, почему бы не взять его за основу?[/quote]
aaarrr
Цитата(alexan300 @ Nov 3 2009, 23:18) *
хмм...его то и нету(((
...
пример как раз оттуда))

Плохо искали - SAM7-P256-blinking-LED\AT91SAM7S-Basic\compil\SrcIAR.
Еще в архиве есть готовый бинарник - его заливать пробовали? Работает?
sergeeff
Цитата(aaarrr @ Nov 4 2009, 00:21) *
Плохо искали - SAM7-P256-blinking-LED\AT91SAM7S-Basic\compil\SrcIAR.
Еще в архиве есть готовый бинарник - его заливать пробовали? Работает?


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

Cstartup_SAM7.r79 - ассемблерный файл, его в С-программу никак нельзя инклудировать, а только отдельно откомпилировать и линкеру приказать объединить два объектных модуля, причем первым должен быть Cstartup_SAM7 и вторым модуль с main().
alexan300
что то я не понимаю, почему фаил от моеи платы SAM7-H256 находится в каталоге платы SAM7-P256 ?
бинарник пробывал заливать..сеичас попробую залить тот что вы мне указали.
aaarrr
Цитата(alexan300 @ Nov 4 2009, 12:09) *
что то я не понимаю, почему фаил от моеи платы SAM7-H256 находится в каталоге платы SAM7-P256 ?

Полное название платы нужно было упомянуть в первом же посте. Как догадаться, что у вас H256, если вы ссылаетесь на схему P64?
alexan300
Подскажите а когда бинарником мк прошиваешь, есть необходимость стартап и библиотеки в один каталог пихать? Или же бин фаилу уже всеравно он необходимую инфу вписал в себя?
И еще вопросик. Как стартап прилипить? Через инклуде? Но там все фаилы с h расширением. Напишите образец подалуиста. Ну а как егоив менеджер проекта добавить это я знаю))
aaarrr
Цитата(alexan300 @ Nov 4 2009, 14:43) *
Подскажите а когда бинарником мк прошиваешь, есть необходимость стартап и библиотеки в один каталог пихать? Или же бин фаилу уже всеравно он необходимую инфу вписал в себя?

Нет необходимости. Бинарнику уже ничем не поможешь.

Цитата(alexan300 @ Nov 4 2009, 14:43) *
И еще вопросик. Как стартап прилипить? Через инклуде? Но там все фаилы с h расширением.

А зачем "липить" стартап к C-файлу, а? Он и знать о нем не должен.
Стартап средствами линкера кладется в начало памяти. При запуске процессора осуществляет минимальную требуемую инициализацию (тактирование, память, стеки) и передает управление C-части.


Даже не знаю, букварь бы какой почитали что ли. Четыре страницы мочало жуем и даже до светодиода не добрались.
alexan300
Цитата(aaarrr @ Nov 4 2009, 15:20) *
Даже не знаю, букварь бы какой почитали что ли. Четыре страницы мочало жуем и даже до светодиода не добрались.

А в букваре Редькина эта часть вписана в главу относящуюся к джатагу, необходимость этих деиствий с программированием через юсб я не сопоставил) да и там не мнго другая версия iar рассматривется. Линкер говорите. Попробую.
sergeeff
Уважаемый alexan300!
Каша у вас в голове полная. JTAG какое имеет отношение к получению bin-файла? Абсолютно никакого. Как формируется бинарный файл? Вам хоть это понятно? А когда этот самый bin-файл получен ваша задача его загрузить в процессор и эту программу стартануть.
Вам уважаемый aaarrr дал классное решение - залить готовый bin-файл, так и залейте его для начала. А вы нам опять про то, как программа компилируется, компонуется. Вы хоть научитесь готовый файл грузить и стартовать. Потом перейдем к дальнейшим разборам полетов.
alexan300
Цитата(sergeeff @ Nov 4 2009, 15:48) *
Каша у вас в голове полная. JTAG какое имеет отношение к получению bin-файла? Абсолютно никакого.

это я понял!! Джатаг не имеет отношения!! Каши нет) глава где описывалось подключения стартапа была отнесена к джатагу!! поэтому я неанимательно смотрел ту часть. А так как раз про линкер и его установки описывалось!!
sergeeff
Цитата(alexan300 @ Nov 4 2009, 16:29) *
это я понял!!


Ну раз все понял, так почему до сих пор LED не моргает?
alexan300
Понял это в теории)) а не моргает потому что щас не с компьютером и отладочной платои., а вожу жену по магазинам и в перерывах пока она шопингом развлекается я с мобильника выхожу и смотрю на форум. Но все что мне написали обязательно испробую в рамках своего понимания! )
alexan300
УРА уважаемые ура! фаил бин, прикладеный в скаченом с саита олимекса, заставил моргать ногу, естествено я решил вникнуть глубже в вопросы програмирования мк и открыл полностью проект..попытался для начала его скомпелировать..выскачела ошибка со ссылкои на фаил Cstartup.s79..я его отклыл в блокноте и увидил, что упоминается там исключительно "Generic CStartup to AT91SAM7S64"
я же использую 256 процессор.
я так понимаю, что для компилятора и процессора это не одно и тоже? регистры там разные, память??
если я изменю все в фаиле с ......64, на .....256, это мне не поможет?да.
и еще впрос.стартапа достаточно одного для мк, или же для каждои программы прошиваемои в мк, стартап необходимо переделывать?? или же все зависит от того, в какои участок памяти я записываю бин фаил?
..простите за делитанские вопросы)
aaarrr
Цитата(alexan300 @ Nov 4 2009, 19:55) *
выскачела ошибка со ссылкои на фаил Cstartup.s79
...
если я изменю все в фаиле с ......64, на .....256, это мне не поможет?

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

Цитата(alexan300 @ Nov 4 2009, 19:55) *
да. и еще впрос.стартапа достаточно одного для мк, или же для каждои программы прошиваемои в мк, стартап необходимо переделывать?? или же все зависит от того, в какои участок памяти я записываю бин фаил?

Стартап - часть программы. Вопрос не понял, если честно.
alexan300
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.
переформулирую ранее заданый вопрос.. стартап универсален для одного типа мк., а для другого мк нужен другои стартап?
стартап- это часть программы отвечающая за инициализацию одного типа мк?
Genadi Zawidowski
Цитата(alexan300 @ Nov 4 2009, 20:32) *
переформулирую ранее заданый вопрос.. стартап универсален для одного типа мк., а для другого мк нужен другои стартап?

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

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

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

Вспомнился баннер в песочнице - "бригада опытных телепатов ответит на все ваши вопросы". Вам ассемблер указал на номера строк. Что за инструкции в этих строках (и предшествующих) находится? Привели бы, не у всех IAR стоит.
aaarrr
Цитата(alexan300 @ Nov 4 2009, 20:32) *
вот что пишит компилятор..

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

Цитата(alexan300 @ Nov 4 2009, 20:32) *
я думаю что фаил, на который компилятор ссылается предназнчен для ....64 проца. а у меня ...s256.

Поверьте, на данном этапе это совершенно не важно. Отличаются они только обемами флеш и ОЗУ, любая программа для 64-го обязана работать на 256-м.
alexan300
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
вот на эти пункты ссылается...

Цитата(Genadi Zawidowski @ Nov 4 2009, 20:56) *
У меня программа скомпилированная для 64-го вполне работала в старших моделях - пока не заморачивайтесь. У вас ошбки не из-за этого.

Я про это и пишу, что скаченный пример решил просто откомпелировать, и создать бин фаил для прошивки, сначало ничего не меняя...а мне ошибки..бин фаил приложеный в примере успешно все прошил.
если бы бинарник успешно создался и прошил бы МК, то следующим шагом я начал б потихоньку что то менять, отслеживая возникающии ошибки, и имея увереность что все библиотеки у меня подключены а также есть рабочии стартап...
Genadi Zawidowski
Цитата(alexan300 @ Nov 4 2009, 21:19) *
Я про это и пишу, что скаченный пример решил просто откомпелировать, и создать бин фаил для прошивки, сначало ничего не меняя...а мне ошибки..бин фаил приложеный в примере успешно все прошил.

Есть предложение найти проект соответствующий версии компилятора, что у Вас есть. Или заставить среду создать проект под Ваш процессор, компилирующийся без ошибок (возможно, с пустой функцией main) и вбить в него обльно валяющиеся даже на этом форуме последовательности инициализации порта на вывод и мерцания светодиодом.
alexan300
Цитата(Genadi Zawidowski @ Nov 4 2009, 21:45) *
Есть предложение найти проект соответствующий версии компилятора, что у Вас есть. Или заставить среду создать проект под Ваш процессор, компилирующийся без ошибок (возможно, с пустой функцией main) и вбить в него обльно валяющиеся даже на этом форуме последовательности инициализации порта на вывод и мерцания светодиодом.

Тут либо проект компилирующиися без ошибок и бесполезный так как нету стартапа, либо рабочии бинарник, но со стартапом не работающим в моеи среде))
последовательность инициализации порта может и валяется где то, но она сплош а асемблере.
луше б эту пследовательность фаиликом отдельным к проекту вешать и не лазить в его нутро до лучших времен.
Не подскажите, можно ли ИАРом этот стартап создать для моего процессора.
РС. это мои первый опыт знакомства с МК.
Genadi Zawidowski
Держите на 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;
}
sergeeff
Не бывает проекта без startup'a! Поймите, наконец, что любой процессор должен быть настроен на работу + должны быть выполнены некоторые ритуальные действия, необходимые для работы собственно программы (принято для С/С++ что программа начинается в модуле main()). Масса молодых программистов развращена интегрированными средами и не хочет разобраться в порядке работы с компилятором, линкером и прочими, не очень сложными вещами. Могу сообщить вам страшный секрет - в MS Visual Studio и в Borland Builder'e тоже есть startup модули.

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

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

P.S. А как настроить порт на вывод на С я уже несколько выше писал.
alexan300
Большое спасибо..попробывал..
программа на мк не запускается..
#define WORKMASK AT91C_PIO_PA8
замениел на 8..
по моему без стратапа ну никак((
компилируется нармально с одним предупреждением.
бинарник выходит., в мк записывается, но не выполняется((

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

так примеры то я смотрел и скачал с олимекса..
бинарник работает, но вот проект который этот бинарник создал у производителя, у меня ну никак не хочет компилироваться..
все верно проблемма в ассемблерном коде, туда и кивает компилятор..но лучше былаб проблемма в Си коде..больше шансов разобраться, а асемблер это лес густои (
RSEG INTRAMEND_REMAP ;- Begins a relocatable segment
ORG 0 ;- Sets the location counter
ну вот что он мне хочет этим сказать??
Genadi Zawidowski
Одна маленькая тонкость - в этой программе отсутствует разрешение реагирования процессора на сигнал сброса - то есть, попробуйте выключить питание отладочной платы, а затем включить опять. Обычно это разрешение делается startup, но не всегда нужно (оно, конечно, удобно при отладке, но в реальной жизни может и не требоваться).
sergeeff
Уважаемый!

Умеете в своем IDE генерить map-файл? Этот файл генерит линкер и показывает адреса загрузки всех глобальных функций и переменных (довольно внятный текстовой файл). Когда создадите этот файл посмотрите адрес main(). Если этот адрес равен начальному адресу флеш памяти - значит действительно у вас пропущен startup модуль, или он не включен в список файлов линкера.
alexan300
Цитата(Genadi Zawidowski @ Nov 4 2009, 23:25) *
Одна маленькая тонкость - в этой программе отсутствует разрешение реагирования процессора на сигнал сброса - то есть, попробуйте выключить питание отладочной платы, а затем включить опять. Обычно это разрешение делается startup, но не всегда нужно (оно, конечно, удобно при отладке, но в реальной жизни может и не требоваться).

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

Цитата(sergeeff @ Nov 4 2009, 23:26) *
Уважаемый!

Умеете в своем IDE генерить map-файл? Этот файл генерит линкер и показывает адреса загрузки всех глобальных функций и переменных (довольно внятный текстовой файл). Когда создадите этот файл посмотрите адрес main(). Если этот адрес равен начальному адресу флеш памяти - значит действительно у вас пропущен startup модуль, или он не включен в список файлов линкера.

вроде разобрался как их создавать..но не могу наити куда он их прячет)
это оно??
main 0x00000081 0x58 Code Gb main.o [1]
адрес в котороый записывается программа 0х100000 это судя по самбе..он же начальный адрес флеш.
вот еще одно упоминание
?main 0x000001e0 Code Gb cmain.o [4]

расширение фаила ...map?
aaarrr
Цитата(alexan300 @ Nov 4 2009, 23:24) *
ну вот что он мне хочет этим сказать??

Вы ответы читаете? Версия у вас не та.

Учитывая тот факт, что вы только начинаете разбираться с МК, то лучше все же начать с готового примера, иначе эта тема растянется еще на десяток-другой страниц. Поэтому или найдите пример для вашей версии ИАР (какой, кстати?), или скачайте ИАР, пригодный для компиляции имеющегося примера.
alexan300
Цитата(aaarrr @ Nov 4 2009, 23:55) *
Вы ответы читаете? Версия у вас не та.

Учитывая тот факт, что вы только начинаете разбираться с МК, то лучше все же начать с готового примера, иначе эта тема растянется еще на десяток-другой страниц. Поэтому или найдите пример для вашей версии ИАР (какой, кстати?), или скачайте ИАР, пригодный для компиляции имеющегося примера.

IAR Systems\Embedded Workbench 5.4 Evaluation
вот такая версия..наверно не надо было скачивать самую последнию, на нее еще в рускоязычном интернете примеров не придумали много..
aaarrr
Скачайте последнюю доступную 4.xx. С ней этот пример должен нормально собраться.
alexan300
Цитата(aaarrr @ Nov 5 2009, 00:04) *
Скачайте последнюю доступную 4.xx. С ней этот пример должен нормально собраться.

http://www.iar.com/website1/1.0.1.0/102/1/
там только 5.2..
не знаете часом где б наит 4хх версию??
Genadi Zawidowski
Скачал IAR Embedded Workbench for ARM 5.40 Kickstart, в ней добился того, что собирается работоспособный проект. Средствами среды не нашёл способа прошивать во flash скомпилированную программу (только загрузка и выполнение из озу возможно). Вернее, не смог правильно сконфигурирвать предлагаемые flash loader-ы.
В соответствующих каталогах проекта лежат .hex файлы, дёргающие PA8 с небольшой скоростью.
Программировал flash отдельной программой - всё работает.
sergeeff
Ну вот и иллюстрация того, что все можно сделать если голову слегка напрячь. Удивительно, ведь чуть ли не по пунктам уважаемому alex300 объяснили, а он ни в какую. Ну да Бог ему в помощь.
alexan300
Народ гляньте пожалуиста кто может..запускается проект, бинарник создает работающий?
у меня создает, записывается в МК, но опять не выполняется..
Вышеназванную версию ИАРа пока качаю.
стартапа там кстати нету.
sergeeff
Цитата(alexan300 @ Nov 5 2009, 21:35) *
стартапа там кстати нету.


Елы-палы. Да startup, он зависит от типа процессора, ну и может быть от специфической платы! Вам уже несколько примеров готовых проектов пригнали со startup'ами. А вы все туда же. Взять нужный startup, добавить в свой проект в своей версии IAR. Это что требует наличия докторской степени по информатике? Неужели не собразить, что делают 30-50 строк ассемберного текста в startup'e?
alexan300
Цитата(sergeeff @ Nov 5 2009, 23:15) *
Елы-палы. Да startup, он зависит от типа процессора, ну и может быть от специфической платы! Вам уже несколько примеров готовых проектов пригнали со startup'ами. А вы все туда же. Взять нужный startup, добавить в свой проект в своей версии IAR. Это что требует наличия докторской степени по информатике? Неужели не собразить, что делают 30-50 строк ассемберного текста в startup'e?

Да вот елы палы! не один стартап не компилируется с программой! даже если я беру образец с рабочим бинарником (светодиод моргает у меня), то при открытии проекта во время компиляции выскакивают ошибки на стартап..я уже и комбинировал свои С код с различными стартапами, взятыми из разных источников, четко следил где находится этот фаил, дабы на него все пути указывали, что бы он сам рядшком лежал с маин и прочими фаилааи..но все равно ошибки при компиляции!! я даже версию другую ИАРа скачал, все одинаково.
что они делают я понял..инициализируют процессор и передают управление во флеш программу.
вон..щас вообще рекорд(((554 ошибки и почти все в стартапе((там и стро то столько нету
вобщем не видать мне щастья...
а кстати..какои стартап нужный???как это узнать?.....s79 или же ....c
Genadi Zawidowski
Цитата(alexan300 @ Nov 5 2009, 21:35) *
Народ гляньте пожалуиста кто может..запускается проект, бинарник создает работающий?
у меня создает, записывается в МК, но опять не выполняется..
Вышеназванную версию ИАРа пока качаю.
стартапа там кстати нету.


Я же сказал - не записывается в ПЗУ. Только грузится естественно без результата. Адрес для кода в линкере я поставил с 0 - это надо каким-нибудь "флэшером" прожигать. IAR не делает этого.

А "стартап" неявно подключается - о его наличии говорит содержимое .map файла после завершения построения проекта.

Бинарник работающий, не беспокойтесь. Попробуйте .hex с помощью какой-нибудь утилиты вроде тех, что идут вместе с jtag адаптером прошить - и посмотрите на вывод PA8. У меня с частотой около полугерца машет.

Возмоте мой проект и забудьте пока про стартап - он есть! Ну не даёт iar к нему доступа - так для начинающего продукт (на мой взгляд после знакомства с тем, что я вчера скачал).
alexan300
Цитата(Genadi Zawidowski @ Nov 5 2009, 23:40) *
Бинарник работающий, не беспокойтесь. Попробуйте .hex с помощью какой-нибудь утилиты вроде тех, что идут вместе с jtag адаптером прошить - и посмотрите на вывод PA8. У меня с частотой около полугерца машет.

ну нету у меня джатага..и утилиты соответсенно тоже..есть самба есть ИАР, есть юсб шнур и плата отладочная.
на РА 8 как раз светодиод висит..
а что будет если я этот бинарник запишу в область памяти МК 0х0 EEPROM или же в SRAM 0x200000 ?
последнии вопрос отменяется..попытки записи туда не удались и окончились зависанием..

Модератор (rezident). За систематическое нарушение п.3.4 Правил форума (излишнее цитирование) выношу Вам предупреждение. Пользуйтесь уже наконец встроенным редактором сообщений перед их отправкой!
P.S. Личную почту хоть иногда нужно читать.
Genadi Zawidowski
Цитата
а что будет если я этот бинарник запишу в область памяти МК 0х0 EEPROM или же в SRAM 0x200000 ?

В область 0 - скорее всего ничего не произойдёт. Вернее, надо прочитать повнимательней про маппинг после сброса у at91sam7sXXX - может оно в ОЗУ направляется? А при просто записи в область ПЗУ ничего не происходит, его содержимое не меняется и всё остаётся как и прежде.
Если код, предназначенный для работы с абсолютного адреса 0 загручить со смещением - не знаю, зависит от кодогенератора. Сейчас я не знаю ассемблера АРМ настолько (и не собираюсь его изучать пока), чтоб сказать точно что будет, но, скорее всего, код выполняться будет из-за используемой в основном относительной адресации. НО, адрес ОЗУ прописан начинающимся с 0x200000 - и код, скорее всего, если используется что-то в ОЗУ - будет испорчен. Для отладки в ОЗУ попробуйте самостоятельно выделть два непересекающихся участка в ОЗУ и скомпилировать программу под эту конфгурацию (например, модифицировать конфигурацию debug того проекта, что я выложил).

Ещё, есть предопределённые места в адресном пространстве - например, таблица векторов прерываний - и их прото так не переместишь. Мой пример не использует прерывания.
aaarrr
2 Alexan300: Вот проект под IAR 5.4 со стартапом, блекджеком и шлюхами.
Нажмите для просмотра прикрепленного файла
Специально из-за вас ИАР поставил.
sergeeff
Цитата(aaarrr @ Nov 6 2009, 02:18) *
Специально из-за вас ИАР поставил.


Во как он всех нас достал!
alexan300
Цитата(aaarrr @ Nov 6 2009, 02:18) *
2 Alexan300: Вот проект под IAR 5.4 со стартапом, блекджеком и шлюхами.
Нажмите для просмотра прикрепленного файла
Специально из-за вас ИАР поставил.

Большое спасибо! проект открыл, все фаилы к проекту подключены.
сначало сделал все как у вас, только в линкере изменил расширение фаила на бин.
откомпелировал. debug и relase. получил в папке ехе бинарник. записал его в мк самбои..
проверил. все без ошибок. отключил юсб шнур..включил, реакции 0((затем также резетом, что конечно бесполезно но на всякии случаи
затем полез в опции, заменил ARM7TDI на AT917SAM256..снова откомпилировал..опять 0..
записываю с 0х100000, вкладка флеш..
Нучто я еще мог пропустить!!!!???((
aaarrr
Цитата(alexan300 @ Nov 7 2009, 03:49) *
сначало сделал все как у вас, только в линкере изменил расширение фаила на бин.

Оно и так было bin, что вы меняли?

Цитата(alexan300 @ Nov 7 2009, 03:49) *
Нучто я еще мог пропустить!!!!???((

Понятия не имею. Попробуйте записать готовый бинарник (debug\exe).
Проект я честно проверил, правда записывал при помощи SAM-Prog, но разницы с Самбой никакой нет.
alexan300
blink.bin а было расширение ..out
сампрог он же не через юсб прописывает??
чесно говоря бинарника я что то не нашел после разахивирования..щас еше проверю.
да Ваш бинарник работает..я заметил странность..что когда я создаю бин фаил и при записи смотрю на него в самбе, то вижу один код (самое начало) а когда чеи то заведомо рабочии то другое начало фаила..странно..
aaarrr
Цитата(alexan300 @ Nov 7 2009, 04:07) *
blink.bin а было расширение ..out

out и получающийся из него bin - две ОГРОМНЫЕ разницы.

Цитата(alexan300 @ Nov 7 2009, 04:07) *
сампрог он же не через юсб прописывает??

Через USB.

Цитата(alexan300 @ Nov 7 2009, 04:07) *
чесно говоря бинарника я что то не нашел после разахивирования..щас еше проверю.

Тем не менне, он там есть.
Genadi Zawidowski
Цитата
заменил ARM7TDI на AT917SAM256

Это тоже пример "шаловливых ручек". Зачем?
Крутите потом, когда разберетесь с загрузкой файлов - когда сможете контролировать результат.
Цитата
включил, реакции 0

Разнца между загрузкой в ОЗУ и программированием ПЗУ Вам понятна?
alexan300
Цитата(aaarrr @ Nov 7 2009, 04:12) *
out и получающийся из него bin - две ОГРОМНЫЕ разницы.

Через USB.

Тем не менне, он там есть.

Так может я не так пытаюсь создать бин фаил? я в настройках линкера меняю разрешения фаила с out на bin..как написано в книге Редькина.
бин бину рознь чтоли?
Да в каталоге ехе я нашел бинарник,он успешно все прошивает..но если я пытаюсь на основании Ваших фаилов создать новый бинарник, то ничего не выходит.
Как будто я что то ни так делаю)

Цитата(Genadi Zawidowski @ Nov 7 2009, 09:17) *
Это тоже пример "шаловливых ручек". Зачем?
Крутите потом, когда разберетесь с загрузкой файлов - когда сможете контролировать результат.

Разнца между загрузкой в ОЗУ и программированием ПЗУ Вам понятна?

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

Да деиствительно ,бинарник получаемый из ...out, при изменение в закладке линкера output на разрешение bin не соответсвует тому что мне прислал aaarrr. и вразмерах в 10 раз больше. Подскажите пожалуйста, как мне настроить ИАР на создание бин фаила?
alexan300
Еще замметил следующее.. бинарник создаваемый моим ИАРом имеет в своем составе бинарник присланный aaarrr ом..
хмм..стоит задуматься. что в настроиках моего ИАРа добавляет в бин фаил еще код..?
aaarrr
Цитата(alexan300 @ Nov 7 2009, 12:53) *
Так может я не так пытаюсь создать бин фаил? я в настройках линкера меняю разрешения фаила с out на bin..как написано в книге Редькина.

Выбросьте немедленно эту книгу.

В проекте, который я выложил, уже настроен вывод bin-файла. Делается это на владке Output Conveter, а не Linker.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.