Программирование Файловые системы AT91SAM7X: простейший bootloader, читающий firmware с карты SD/MMC (используется EFSL) Fri, December 13 2024  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.


AT91SAM7X: простейший bootloader, читающий firmware с карты SD/MMC (используется EFSL) Печать
Добавил(а) microsin   

Описанный в статье бутлоадер читает двоичный (.bin) файл с карты SD/MMC и пишет его в память flash микроконтроллера AT91SAM7Xnnn (можно выбрать AT91SAM7X128, AT91SAM7X256 или AT91SAM7X512), после чего передает управление в загруженный код.

MMC_SD02.JPG MMC_SD01.JPG

Варианты подключения карты SD/MMC к микроконтроллеру приведены в таблице ниже. Можно подключить карту либо к SPI0, либо к SPI1. Например, в макетной плате Olimex SAM7-EX256 используется вариант 1 подключения карты SD/MMC. В бутлоадере, можно выбрать любой вариант в зависимости от макроопределений (см. файл at91lib\board\board.h, макрос SELECT_TO_MMC_SPI1). Для подключения сигнала выборки ~CS существует еще больше вариантов, так как каждый из SPIn имеет по 4 аппаратных выхода выборки.


конт.

сигнал
описание
Вариант 1 подключения
(SPI0, PIOA, периферия A)
Вариант 2 подключения
(SPI1, PIOA, периферия B)
1 ~CS выборка карты (режим DAT3 не используется) PA13 PA21
2 MOSI данные, приходящие на вход карты PA17 PA23
3 GND минус питания карты, сигнальная земля    
4 VCC плюс питания карты, от 2.7 до 3.6 вольт, самый лучший вариант 3 вольта    
5 SCK такты данных, поступающие на вход карты PA18 PA22
6 GND минус питания карты, сигнальная земля    
7 MISO данные, уходящие с выхода карты (DAT0) PA16 PA24
8   не используется (DAT1)    
9   не используется (DAT2)    

Карта SD/MMC должна иметь формат FAT16 или FAT32 (до 4 гигабайт), будет прочитан любой файл из каталога карты, имеющий расширение .bin и начинающийся на at91sam7x* (например, файл at91sam7x128_flash.bin или at91sam7x256_flash.bin или at91sam7x512_flash.bin). Если файлов несколько, то будет прочитан первый попавшийся файл AT91SA~N.BIN, где N от 1 до 9. Формат файла - обычный бинарный (не HEX). Файл пишется в память по фиксированному адресу WORK_PROGRAM_START_ADDRESS (он равен 0x110000), сразу за кодом самого бутлоадера, см. карту памяти на рисунке.

AT91SAM7X-bootloader-memory-map.png

Чтобы загружаемая программа пользователя (далее просто firmware) начиналась во flash не с адреса 0x100000, как обычно, а с адреса 0x110000 (чтобы оставить место для бутлоадера), необходимо в проекте firmware отредактировать файл управления памятью flash.icf, см. [1]. Сам бутлоадер необходимо загрузить в память чипа начиная с адреса 0x100000 с помощью либо пакета SAM-BA (см. [3]), либо с помощью JTAG-отладчика.

[Ссылки]

1IAR EWB for ARM: учимся управлять сегментами на примере добавления версии по фиксированному адресу.
2. 130916rwav-boot-public.zip - исходный код бутлоадера и готовые бинарные файлы для AT91SAM7X256 или AT91SAM7X512.
3. AT91SAM7X: бутлоадер SAM-BA от компании Atmel.
4. Макетная плата AT91SAM7X.
5. Библиотека EFSL.

 

Добавить комментарий


Защитный код
Обновить

Top of Page