реклама на сайте
подробности

 
 
> Не прошиваетя AT91SAM7S64
c4331430
сообщение Jan 27 2011, 18:16
Сообщение #1





Группа: Новичок
Сообщений: 5
Регистрация: 27-01-11
Пользователь №: 62 515



1. Установил Keil.
2. Скомпилил пример 'blinky' из \ARM\Boards\Atmel\AT91SAM7S64-EK\. Вот основной код:

CODE
#include <AT91SAM7S64.H>

#include "..\Board.h"
#define SPEED (MCKKHz/10)
const int led_mask[] = { LED1, LED2, LED3, LED4 };
unsigned int LEDSpeed = 50*SPEED;

void change_speed (void) {

if ((AT91C_BASE_PIOA->PIO_PDSR & SW1_MASK) == 0) {
if (LEDSpeed > SPEED) LEDSpeed -= SPEED;
}

if ((AT91C_BASE_PIOA->PIO_PDSR & SW2_MASK) == 0) {
if (LEDSpeed < MCK) LEDSpeed += SPEED;
}
}

void wait (void) {
unsigned int n;
change_speed();
for (n = 0; n < LEDSpeed; n++);
}


int main (void) {
int i;
// Enable the Clock of the PIO
AT91C_BASE_PMC->PMC_PCER = 1 << AT91C_ID_PIOA;
// Configure the PIO Lines corresponding to LED1..LED4 as Outputs
AT91C_BASE_PIOA->PIO_PER = LED_MASK;
AT91C_BASE_PIOA->PIO_OER = LED_MASK;
// Clear the LED's. On the Board we must apply a "1" to turn off LEDs
AT91C_BASE_PIOA->PIO_SODR = LED_MASK;
// Loop forever
for (;;) {
for (i = 0; i < NB_LED; i++) {
AT91C_BASE_PIOA->PIO_CODR = led_mask[i];
wait();
AT91C_BASE_PIOA->PIO_SODR = led_mask[i];
wait();
}
for (i = (NB_LED - 1); i >= 0; i--) {
AT91C_BASE_PIOA->PIO_CODR = led_mask[i];
wait();
AT91C_BASE_PIOA->PIO_SODR = led_mask[i];
wait();
}
}
}


3. Получил hex-прошивку:

CODE
:020000040010EA
:1000000018F09FE518F09FE518F09FE518F09FE5C0
:1000100018F09FE50000A0E120FF1FE520FF1FE58D
:10002000580010004000100044001000480010006C
:100030004C001000000000005000100054001000A0
:10004000FEFFFFEAFEFFFFEAFEFFFFEAFEFFFFEA18
:10005000FEFFFFEAFEFFFFEAC0009FE5C0109FE53C
:10006000081080E5BC009FE5BC109FE5601080E5AE
:10007000B8009FE50219A0E3041080E5B0009FE5F9
:10008000B0109FE5201080E5682090E5012012E285
:10009000FCFFFF0AA0109FE52C1080E5682090E58A
:1000A000042012E2FCFFFF0A0710A0E31C1001E28B
:1000B000301080E5682090E5082012E2FCFFFF0A7E
:1000C0000710A0E3301080E5682090E5082012E2D8
:1000D000FCFFFF0A64009FE5DBF021E300D0A0E114
:1000E000000040E2D7F021E300D0A0E1000040E2B0
:1000F000D1F021E300D0A0E1000040E2D2F021E302
:1001000000D0A0E1800040E2D3F021E300D0A0E1E4
:10011000080040E210F021E324009FE510FF2FE1EA
:1001200000FDFFFF010400A500FFFFFF00013200FA
:1001300040FDFFFF00FCFFFF01060000051C190049
:1001400090042000480110000CD09FE5410000EB16
:1001500000009FE510FF2FE1D801100008042000E7
:100160000020A0E3C40B12E5D8109FE5020710E3BE
:100170000400001A000091E5CC309FE5030050E137
:100180000300408000008185C40B12E5010610E3E6
:100190001EFF2F11000091E5B0209FE5020050E105
:1001A000010A8032AE0F8032000081351EFF2FE140
:1001B00004E02DE5E9FFFFEB88109FE50000A0E3D8
:1001C000001091E5010050E101008032FCFFFF3A90
:1001D00004E09DE41EFF2FE10400A0E30040A0E343
:1001E000F00304E50F00A0E3000C04E5F00B04E5C8
:1001F000D00B04E558509FE500C0A0E30C0195E743
:10020000CC0B04E5E9FFFFEB0C0195E7D00B04E50F
:10021000E6FFFFEB01C08CE204005CE303C0A0A397
:10022000F5FFFFBA0C0195E7CC0B04E5DFFFFFEB10
:100230000C0195E7D00B04E5DCFFFFEB01C05CE2AD
:10024000F7FFFF5AEBFFFFEA00002000B8120000A2
:100250000040DB02C402100001C08FE21CFF2FE14E
:10026000054C064D04E020000FC800F00DF81034D6
:10027000AC42F8D300F004F8D4021000F4021000ED
:100280007847C046B1FFFFEA18470000020000EAC5
:10029000043090E4042042E2043081E4000052E3A0
:1002A000FAFFFF1A1EFF2FE11EFF2FE10000A0E35F
:1002B000000052E30420421204008114FBFFFF1AE5
:1002C0001EFF2FE1010000000200000004000000FA
:1002D00008000000F40210000000200004000000EC
:1002E0008C021000F8021000040020008C040000B2
:0802F000AC021000F0A70300AE
:04000005001001489E
:00000001FF


4. Беру вот отсюда ( http://www.keil.com/download/docs/7.asp ) утилиту hex2bin (размером 12 Кб)
5. Получаю непонятный 1-меговый (!!!) бинарник и сообщение:

Код
Status: Creating binary file.
Status: Read linear address record of 0x00100000
Status: Writing 8 bytes at address 0x001002F0
ERROR: Invalid record type in HEX record 50


Чем ему не нравится строка :04000005001001489E ?

6. Нахожу вот тут ( http://monitor.net.ru/forum/-info-63953.html ) ещё одну утилиту hex2bin (размером 5,5 Кб)
7. Получаю 800-байтный бинарник и сообщение:

Код
* skipping line (marker 04)
* skipping line (marker 05)


8. Пытаюсь прошить самбой - программа не работает (драйвер atm6124 установлен, плату видит нормально)
9. Что делать? Мучаюсь сутки уже...
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 17:22
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016