Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подскажите где лежит базовая инфа по настройке arm91
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
danko_d
Подскажите где можно найти информацию по базовым настройкам регистров ARM91, конкретно линейки ARM91x40
Ну например настройка регистров, правила конфигурации с помощью IAR например.
Сам пдф на этот арм есть и я его изучил, но не знаю с чего начать, заголовочный файл подключил, а дальше не пойму что искать
#include <atmel\ioat91m40800.h>

По идее перед тем, как писать программу нужно знать как сконфигурировать регистры, нужно для этого знать как они в IAR называютсся и как им присвоить значения.
kovigor
Цитата(danko_d @ Jan 25 2011, 21:15) *
По идее перед тем, как писать программу нужно знать как сконфигурировать регистры, нужно для этого знать как они в IAR называютсся и как им присвоить значения.


С IAR'ом поставляются примеры для вашего процессора. Возьмите любой пример, который попроще, и детально его разберите ...

P.S. естественно, придется изучить даташит на ваш процессор
danko_d
Спасибо, я немного понял, посмотрел и даже нашёл примеры, но только для других армов.
Для AT91M40800 нет. Поищу в инете
Я уже понял, там для него должен быть заголовочный файл, не самому же его писать, а примеры комманд в принципе от других армов наверно можно взять
danko_d
Вопрос всё же остался немного открытым.

Скажите, а как вы делаете remap в арме.
Я имею в виду кто работает с каким-то армом, не важно каким, для него нужно сделать начальную настройку регистров, remap, у вас есть какой-то файл и кусок кода, который вы сами настраивали или ничего не надо?
Если например приложение пустое, нужно просто remap сделать какие действия нужно совершить при запуске main?

Не нашёл что-то такой элементарной информации для си.
Конечно в пдф всё есть, но привязки никакой абсолютно к практике.
aaarrr
Цитата(danko_d @ Jan 26 2011, 16:56) *
Я имею в виду кто работает с каким-то армом, не важно каким, для него нужно сделать начальную настройку регистров, remap, у вас есть какой-то файл и кусок кода, который вы сами настраивали или ничего не надо?

Настройка делается в ассемблерном стартапе. Например, так:
Код
; ***************************************************************************
; *    Initialise the Memory Controller
; *

resetvec
;- | Copy the Image of the Memory Controller
        ldr        r10, =ImageMemorySelect    ; get the address of the chip select register image

;- | Copy Chip Select Register Image to Memory Controller and command remap
        ldmia    r10!, {r0-r9, r11, r12}    ; load the complete image
        stmia    r11!, {r0-r9}            ; store the complete image with the remap command
        mov        pc, r12

___start
        ...

        ...


; ***************************************************************************
; * This is data used to setup the boards memory

ImageMemorySelect
        DCD        0x01003535; 0x01000000, 16MB, 2 tdf, 16 bits, 6 ws    - Flash x16
        DCD        0x10000000; unused
        DCD        0x0500353d; 0x05000000, 16MB, 2 tdf, 16 bits, 8 ws    - ECS0 / CF
        DCD        0x0200353d; 0x02000000, 16MB, 2 tdf, 16 bits, 8 ws    - ECS1 / CS8900
        DCD        0x03003536; 0x03000000, 16MB, 2 tdf, 8 bits, 6 ws    - Onboard PLD
        DCD        0x0400353e; 0x04000000, 16MB, 2 tdf, 8 bits, 8 ws    - ECS2
        DCD        0x60000000; unused                            - ECS3
        DCD        0x70000000; unused
        DCD        0x00000001; REMAP commande
        DCD        0x00000006; 7 memory regions, standard read
        DCD        EBI_BASE; EBI address
        DCD        ___start; Start of high level initialization
DpInRock
А не надо привязываться к практике.
У вас есть контроллер, даташит и средство для кодирования программ.
Далее вы просто любыми средствами должны заставить контроллер делать то, ради чего вы его прикупили. Точка.
И использовать ремап или не использовать - дело десятое.
Если не видите для чего он нужен - и хорошо. "Одной проблемой меньше".
danko_d
этот пример можно как то применить?
или его можно взять из какого-то источника?
ищу в интернете, не могу найти никакой информации по этому вопросу

Цитата(DpInRock @ Jan 26 2011, 17:17) *
Далее вы просто любыми средствами должны заставить контроллер делать то, ради чего вы его прикупили.


Какими средствами???? В этом вопрос.
Для этого создана тема. Какими средствами вы имеете в виду.
Я не знаю что первое включить и написать в функцию main, чтобы после прошивки в арм программа инициализировала его и начала выполняться.
Я его ещё не программировал.

Нужно взять где-то или заголовочный файл с инициализацией или выполнить какие-то другие действия, я открывал примеры но не понял пока сути запуска армов. Как присвоить число переменной это второстепенный вопрос, мне не нужна информация как программировать, мне нужна точка отталкивания, не нужно названия регистров, их адреса, это понятно уже есть в пдф.

DpInRock
Цитата
Какими средствами????

Моск+IAR+datasheet.

Хотя я вас понимаю. У большинства "программистов" на клавиатуре 3 клавиши - Ctrl C и V.
Их можно и нужно использовать. Но только чутка потом.
---
Просто вам тогда рано программировать контроллеры. Почитать надо.
Оветьте себе на вопросы - что делает процессор после резета, в каком месте может располагаться ваша предполагаемая программа,
как ее там разместить, как подсказать ИАРу, чтобы он транслировал ее именно в эту область и так далее...
aaarrr
Цитата(danko_d @ Jan 26 2011, 17:25) *
ищу в интернете, не могу найти никакой информации по этому вопросу

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

Цитата(danko_d @ Jan 26 2011, 17:25) *
Я не знаю что первое включить и написать в функцию main, чтобы после прошивки в арм программа инициализировала его и начала выполняться.

До main'а еще далеко. Прежде всего вам нужно в стартапе настроить EBI и выполнить remap, а затем настроить стеки.

Цитата(danko_d @ Jan 26 2011, 17:25) *
Я его ещё не программировал.

А на какой платформе у вас живет 40800? А то с программированием там тоже не все так радужно как нынче.
danko_d
Цитата(aaarrr @ Jan 26 2011, 17:37) *
До main'а еще далеко. Прежде всего вам нужно в стартапе настроить EBI и выполнить remap, а затем настроить стеки.


++++1111

Именно это и нужно мне сделать. Именно это я и ищу. Если вы можете подсказать или конкретно или дать ссылку. Или что-то другое именно по поводу этого вопроса пожалуйста.


Таким образом я могу уже более конкретно сформулировать вопрос:
(если он покажется ламерским или глупым, пожалуйста об этом не говорите, на то есть у каждого свои обстоятельства)

EBI - external user interface, я так понял через интерфейс внешней памяти необходимо с помощью отладочных средств сделать первоначальную настройку арма?

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

Буду использовать IAR 5.41
aaarrr
Цитата(danko_d @ Jan 26 2011, 17:50) *
Именно это и нужно мне сделать. Именно это я и ищу. Если вы можете подсказать или конкретно или дать ссылку. Или что-то другое именно по поводу этого вопроса пожалуйста.

Атмеловские примеры:
Нажмите для просмотра прикрепленного файла

Цитата(danko_d @ Jan 26 2011, 17:50) *
REMAP выполнить это понятно, каким образом, прошивкой или физическим воздействием на ножку сброса?

Физическим воздействием на ножку сброса процессор (вместе с ремапом) можно только сбросить. А далее произойдет следующая вещь:
память на nCS0 будет сконфигурирована с максимальными таймингами и отмаплена в нулевой адрес, остальные nCS недоступны,
ядро начнет выполнение программы с нулевого адреса.
Вашей программе прежде всего следует настроить EBI в соответствии с аппаратной конфигурацией, затем настроить стеки
и передать управление на уровень выше.
danko_d
Спасибо за помощь, это чрезвычайно понятная и ценная для меня информация.
Примеры я посмотрю.
А вот последний ваш абзац очень информативный, это именно то, что хотелось знать.
aaarrr
Цитата(danko_d @ Jan 26 2011, 19:45) *
Спасибо за помощь

Всегда пожалуйста.

Вопрос немного не в тему: я так понимаю, что с ARM'ами вы раньше дела не имели, а 40800 очень древний кристалл. Что побудило начать работать именно с ним?
danko_d
Я имел дело с ПЛИС и CYGNAL, арм отличается конечно, но это ничего. С теми быстро разобрался.
Другой ARM мы начали применять на старой работе. Но я до него на тот момент ещё не дошёл.
Да и с армом в принципе разобрался до раздела запуск )
У меня задание на новую работу.
Сделаю будет новая работа не сделаю не будет.
Этот арм использовали и на него сделаны платы, поэтому задание именно с ним работать.
Я посмотрел ваши примеры, это примеры не для IAR, для какой-то другой среды? Какой, ARM SDT?
aaarrr
Цитата(danko_d @ Jan 27 2011, 09:18) *
Я посмотрел ваши примеры, это примеры не для IAR, для какой-то другой среды? Какой, ARM SDT?

Да, ARM SDT. В те времена IAR'а и в помине не было, только SDT и GHS Multi.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.