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

как прошить AT91SAM7S256

Уберите это:

//Enable RESET
  m_pRSTC->RSTC_RCR = 0xA5000008;
  m_pRSTC->RSTC_RMR = 0xA5000001;

 

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

Даже если просто взвести USRTEN, пока не кончился внешний сброс (бит NRSTL регистра RSTC_SR в нуле), процессор гарантированно не запустится.

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


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

Если программа не запускается, надо:

1. Сделать ее максимально простой (минимум текста)

2. Четко локализовать, что работает, что нет.

 

Я вам привел пример минимальной программы, которая позволяет удостовериться в том, что программа стартовала и дошла до бесконечного цикла (в котором и остается). Вы должны, при этом четко понимать, что до вызова main() выполняется startup модуль, написанный на ассемблере. Соответственно, если не вызывается main() возможны варианты:

1. Не стартует startup модуль вообще.

2. Программа виснет где-то в промежутке до вызова main().

3. Не происходит передача управления из startup'a в main.

 

Поколдовав немного, можно четко локализовать где что виснет, а затем покумекать по какой причине.

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


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

Даже если просто взвести USRTEN, пока не кончился внешний сброс (бит NRSTL регистра RSTC_SR в нуле), процессор гарантированно не запустится.

спасибо большое..но все равно не запускается((

хотя симуляция и компиляция без ошибок.

 

Поколдовав немного, можно четко локализовать где что виснет, а затем покумекать по какой причине.

программа простая как 3 копеики, моргания 8 ноги.

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

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

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

но вот все в железе((((ноль!

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


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

Первый вам вопрос - а что вы прописываете с адреса 100000? Вы туда пропишите те самые команды - зажечь led и закрутиться в бесконечном цикле. Если это не будет работать, значит вы туда не передаете управление. И бросьте вы ссылаться на всякие jtag'и. На заре появления микропроцессоров их в помине не было и ничего, отлаживали и без них. А программная эмуляция - она и есть эмуляция.

 

Да, кстати, может свой startup продемонстрируете?

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


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

Первый вам вопрос - а что вы прописываете с адреса 100000? Вы туда пропишите те самые команды - зажечь led и закрутиться в бесконечном цикле. Если это не будет работать, значит вы туда не передаете управление. И бросьте вы ссылаться на всякие jtag'и. На заре появления микропроцессоров их в помине не было и ничего, отлаживали и без них. А программная эмуляция - она и есть эмуляция.

ДА! если я правильно понял то управление передать можно нажатием однои из следующих кнопок :

DISABLE BRAWN OUT DIREKTOR

DISABLE BRAWN OUT RESET

ENABLE BRAWN OUT DIREKTOR

ENABLE BRAWN OUT RESET

ENABLE FLASH ACSESS

ERASE ALL FLASH

Ну последений пункт ясен, обнулить.

предпоследнии похож на запуск программы из флеш--его я использовал тоже

что же за "коричнивые директоры как перевел мне переводчик, мне не ясно..

подскажите плз, при какие обстоятельствах надо задеиствовать эти кнопки ??

startup ээээ...а какое у него расширение?? в книге Редькина не нашел ничего про это..

там указано..для таго что бы перевести МК в выполнение программы из флеш, выберети пункт Bootfrom flash у меня нету одноименнои кнопки((

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

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


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

Форумчане!! подскажи те плз!!! спать уже не могу спокоино, как мне "сказать" МК что бы он выполял программу из флеш памяти? и что такое старт ап? где он находится? использую сам ба v2.9 и IAR .

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


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

ДА! если я правильно понял то управление передать можно нажатием однои из следующих кнопок :

DISABLE BRAWN OUT DIREKTOR

...

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

 

в книге Редькина не нашел ничего про это..

там указано..для таго что бы перевести МК в выполнение программы из флеш, выберети пункт Bootfrom flash у меня нету одноименнои кнопки((

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

 

...как мне "сказать" МК что бы он выполял программу из флеш памяти?

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

 

и что такое старт ап? где он находится?

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

 

 

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

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


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

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

 

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

 

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

 

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

 

отлично!

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

 

хмм...его то и нету(((

зато есть Cstartup_SAM7.pbi,Cstartup_SAM7.r79.

пример как раз оттуда))

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

 

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

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

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


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

хмм...его то и нету(((

...

пример как раз оттуда))

Плохо искали - SAM7-P256-blinking-LED\AT91SAM7S-Basic\compil\SrcIAR.

Еще в архиве есть готовый бинарник - его заливать пробовали? Работает?

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


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

Плохо искали - SAM7-P256-blinking-LED\AT91SAM7S-Basic\compil\SrcIAR.

Еще в архиве есть готовый бинарник - его заливать пробовали? Работает?

 

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

 

Cstartup_SAM7.r79 - ассемблерный файл, его в С-программу никак нельзя инклудировать, а только отдельно откомпилировать и линкеру приказать объединить два объектных модуля, причем первым должен быть Cstartup_SAM7 и вторым модуль с main().

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


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

что то я не понимаю, почему фаил от моеи платы SAM7-H256 находится в каталоге платы SAM7-P256 ?

бинарник пробывал заливать..сеичас попробую залить тот что вы мне указали.

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


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

что то я не понимаю, почему фаил от моеи платы SAM7-H256 находится в каталоге платы SAM7-P256 ?

Полное название платы нужно было упомянуть в первом же посте. Как догадаться, что у вас H256, если вы ссылаетесь на схему P64?

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


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

Подскажите а когда бинарником мк прошиваешь, есть необходимость стартап и библиотеки в один каталог пихать? Или же бин фаилу уже всеравно он необходимую инфу вписал в себя?

И еще вопросик. Как стартап прилипить? Через инклуде? Но там все фаилы с h расширением. Напишите образец подалуиста. Ну а как егоив менеджер проекта добавить это я знаю))

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

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


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

Подскажите а когда бинарником мк прошиваешь, есть необходимость стартап и библиотеки в один каталог пихать? Или же бин фаилу уже всеравно он необходимую инфу вписал в себя?

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

 

И еще вопросик. Как стартап прилипить? Через инклуде? Но там все фаилы с h расширением.

А зачем "липить" стартап к C-файлу, а? Он и знать о нем не должен.

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

 

 

Даже не знаю, букварь бы какой почитали что ли. Четыре страницы мочало жуем и даже до светодиода не добрались.

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


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

Даже не знаю, букварь бы какой почитали что ли. Четыре страницы мочало жуем и даже до светодиода не добрались.

А в букваре Редькина эта часть вписана в главу относящуюся к джатагу, необходимость этих деиствий с программированием через юсб я не сопоставил) да и там не мнго другая версия iar рассматривется. Линкер говорите. Попробую.

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


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

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

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

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

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

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

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

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

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

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