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

 
 
> Alwinner A13 не стартует с SD-карты, Отладочная плата A13-olinuxino
__inline__
сообщение Mar 30 2018, 13:15
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 257
Регистрация: 5-09-17
Пользователь №: 99 126



Здравствуйте!

Начал осваивать Allwinner A13 и пока безуспешно. Использую отладочную плату "A13-olinuxino", загрузиться хочу с SD карты (4 ГБ класс скорости 4).

Компилятор arm-none-eabi , исходник программы ниже, мигает светодиодом на порте G 9 (штатный порт на отладочной плате со светодиодом):

CODE
#define uint32_t unsigned long int

#define CCMBase 0x01C20000 //clock module
#define Def_APB0_Gating CCMBase + 0x68

//#define Def_APB0_Gating 0x01C20068

#define GPIOBase 0x01C20800
#define GPIOIncrement 0x24

#define ALLWINNER_GPIO_A GPIOBase
#define ALLWINNER_GPIO_B GPIOBase + (1*GPIOIncrement)
#define ALLWINNER_GPIO_C GPIOBase + (2*GPIOIncrement)
#define ALLWINNER_GPIO_D GPIOBase + (3*GPIOIncrement)
#define ALLWINNER_GPIO_E GPIOBase + (4*GPIOIncrement)
#define ALLWINNER_GPIO_F GPIOBase + (5*GPIOIncrement)
#define ALLWINNER_GPIO_G GPIOBase + (6*GPIOIncrement)
#define ALLWINNER_GPIO_H GPIOBase + (7*GPIOIncrement)
#define ALLWINNER_GPIO_I GPIOBase + (8*GPIOIncrement)

#define Port_CFG0 0x00 //pin direction and function 0 to 7
#define Port_CFG1 0x04 //pin direction and function 8 to 15
#define Port_CFG2 0x08 //pin direction and function 16 to 24
#define Port_CFG3 0x0C //pin direction and function 25 to 32
#define Port_DAT 0x10
#define Port_DRV0 0x14
#define Port_DRV1 0x18
#define Port_PUL0 0x1C


void main(void)
{
int i;
int j;
int foo;

uint32_t *portGConfig;
uint32_t *portGData;
uint32_t *APB0Gating;

//setup pointers for registers
portGConfig = (uint32_t *)(ALLWINNER_GPIO_G + Port_CFG1);
portGData = (uint32_t *)(ALLWINNER_GPIO_G + Port_DAT);
APB0Gating = (uint32_t *)(Def_APB0_Gating);

//enable clocking for GPIO
*APB0Gating |= 0x0020;
//configure port G pin 9 to output
*portGConfig |= 0x10;
//set output to on
*portGData |= 0x0200;

Loop:

foo = 0;
for (j = 0; j < 100; j++)
{
//toggle output
*portGData ^= 0x0200;

foo=j;
for (i = 0; i < 30000000; i++)
{
if(i>10)
{
foo++;
}
}
}

goto Loop;

}


Файл линковщика:
Код
MEMORY
{
RAM (XRW) : ORIGIN = 0x00000000, LENGTH = 0x00004000 /* 16 KB */
}

SECTIONS
{
.start    : { *(.start)    } > RAM
.text     : { *(.text)     } > RAM
.bss      : { *(.bss)      } > RAM
.fill     :
{
  FILL(0x00);
  . = ORIGIN(RAM) + LENGTH(RAM) - 1;
  BYTE(0x00);
} > RAM
/DISCARD/ : { *(.dynstr*)  }
/DISCARD/ : { *(.dynamic*) }
/DISCARD/ : { *(.plt*)     }
/DISCARD/ : { *(.interp*)  }
/DISCARD/ : { *(.gnu*)     }
/DISCARD/ : { *(.note*)    }
}


ассемблерный листинг:

Код
test.elf:     file format elf32-littlearm


Disassembly of section .text.startup:

00000000 <main>:
   0:    e59f3030     ldr    r3, [pc, #48]; 38 <main+0x38>
   4:    e5932068     ldr    r2, [r3, #104]; 0x68
   8:    e3822020     orr    r2, r2, #32
   c:    e5832068     str    r2, [r3, #104]; 0x68
  10:    e59328dc     ldr    r2, [r3, #2268]; 0x8dc
  14:    e3822010     orr    r2, r2, #16
  18:    e58328dc     str    r2, [r3, #2268]; 0x8dc
  1c:    e59328e8     ldr    r2, [r3, #2280]; 0x8e8
  20:    e3822c02     orr    r2, r2, #512; 0x200
  24:    e58328e8     str    r2, [r3, #2280]; 0x8e8
  28:    e59f300c     ldr    r3, [pc, #12]; 3c <main+0x3c>
  2c:    e2533001     subs    r3, r3, #1
  30:    1afffffd     bne    2c <main+0x2c>
  34:    eafffffb     b    28 <main+0x28>


мейк-скрипт:
Код
arm-none-eabi-gcc     -Os -march=armv7-a -std=c99 -marm -fpic -Wall -fno-common -fno-builtin -ffreestanding -nostdinc -nostdlib -fno-strict-aliasing -mno-thumb-interwork -fno-stack-protector -fno-toplevel-reorder -Wstrict-prototypes -Wno-format-nonliteral -Wno-format-security -c test.c -o test.o

arm-none-eabi-ld      -T test.lds -M -o test.elf test.o

arm-none-eabi-objdump -D test.elf > test.asm

arm-none-eabi-objcopy -O binary test.elf test.bin

mksunxiboot.exe test.bin test-sd.bin


Для создания загрузочного образа использую программу с аргументами: mksunxiboot.exe test.bin test-sd.bin

С помощью дискового редактора копирую весь образ на 16-й сектор карты памяти (это смещение 8кБ от начала).
Карта памяти отформатирована в винде. Первые сектора - ДОСовский загрузчик-заглушка .

Из ассемблерного листинга видно что программа идет с адреса 0, как требуется в A13.
Хедер вроде тоже с верной контрольной суммой.
Стек инитится BROM-ом (при старте) SP=0x7FF8

Вставляю карту в одладочную плату, подаю питание (внешний БП 6V 2A) - и ничего не горит.

Пожалуйста, помогите разобраться, чего не хватает и что не так?

Весь проект прилагаю, мейк-файлы, скрипты и утилиты там же.

Прикрепленное изображение


Прикрепленный файл  src.zip ( 21.23 килобайт ) Кол-во скачиваний: 17


P.S.
Звонил светодиод и ножку контроллера - контакт есть, диод зажигается от тестера.

Объявил переменные volatile, не помогло:

CODE
void main(void)
{
volatile int i;
volatile int j;
volatile int foo;

volatile uint32_t *portGConfig;
volatile uint32_t *portGData;
volatile uint32_t *APB0Gating;

//setup pointers for registers
portGConfig = (volatile uint32_t *)(ALLWINNER_GPIO_G + Port_CFG1);
portGData = (volatile uint32_t *)(ALLWINNER_GPIO_G + Port_DAT);
APB0Gating = (volatile uint32_t *)(Def_APB0_Gating);

//enable clocking for GPIO
*APB0Gating |= 0x0020;
//configure port G pin 9 to output
*portGConfig |= 0x10;
//set output to on
*portGData |= 0x0200;

Loop:

foo = 0;
for (j = 0; j < 100; j++)
{
//toggle output
*portGData ^= 0x0200;

foo=j;
for (i = 0; i < 30000000; i++)
{
if(i>10)
{
foo++;
}
}
}

goto Loop;


}

00000000 <main>:
0: e59f3094 ldr r3, [pc, #148]; 9c <main+0x9c>
4: e24dd010 sub sp, sp, #16
8: e5932068 ldr r2, [r3, #104]; 0x68
c: e3822020 orr r2, r2, #32
10: e5832068 str r2, [r3, #104]; 0x68
14: e59328dc ldr r2, [r3, #2268]; 0x8dc
18: e3822010 orr r2, r2, #16
1c: e58328dc str r2, [r3, #2268]; 0x8dc
20: e59328e8 ldr r2, [r3, #2280]; 0x8e8
24: e3822c02 orr r2, r2, #512; 0x200
28: e58328e8 str r2, [r3, #2280]; 0x8e8
2c: e3a02000 mov r2, #0
30: e58d200c str r2, [sp, #12]
34: e58d2008 str r2, [sp, #8]
38: e59d2008 ldr r2, [sp, #8]
3c: e3520063 cmp r2, #99; 0x63
40: cafffff9 bgt 2c <main+0x2c>
44: e59328e8 ldr r2, [r3, #2280]; 0x8e8
48: e2222c02 eor r2, r2, #512; 0x200
4c: e58328e8 str r2, [r3, #2280]; 0x8e8
50: e59d2008 ldr r2, [sp, #8]
54: e58d200c str r2, [sp, #12]
58: e3a02000 mov r2, #0
5c: e58d2004 str r2, [sp, #4]
60: e59d1004 ldr r1, [sp, #4]
64: e59f2034 ldr r2, [pc, #52]; a0 <main+0xa0>
68: e1510002 cmp r1, r2
6c: ca000007 bgt 90 <main+0x90>
70: e59d2004 ldr r2, [sp, #4]
74: e352000a cmp r2, #10
78: c59d200c ldrgt r2, [sp, #12]
7c: c2822001 addgt r2, r2, #1
80: c58d200c strgt r2, [sp, #12]
84: e59d2004 ldr r2, [sp, #4]
88: e2822001 add r2, r2, #1
8c: eafffff2 b 5c <main+0x5c>
90: e59d2008 ldr r2, [sp, #8]
94: e2822001 add r2, r2, #1
98: eaffffe5 b 34 <main+0x34>
9c: 01c20000 biceq r0, r2, r0
a0: 01c9c37f biceq ip, r9, pc, ror r3


Сообщение отредактировал IgorKossak - Mar 30 2018, 14:33
Причина редактирования: [codebox] для длинного кода. [code]-для короткого!!!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- __inline__   Alwinner A13 не стартует с SD-карты   Mar 30 2018, 13:15
- - aaarrr   Попробуйте сначала этот бинарник из-под u-boot...   Mar 30 2018, 13:40
- - __inline__   может быть проблема в этом: Кодsudo dd if=bin/rele...   Mar 30 2018, 14:24
|- - aaarrr   Цитата(__inline__ @ Mar 30 2018, 17:24) м...   Mar 30 2018, 14:31
|- - mantech   Цитата(aaarrr @ Mar 30 2018, 17:31) Содер...   Mar 30 2018, 20:11
|- - Jury093   Цитата(mantech @ Mar 30 2018, 23:11) Не д...   Mar 31 2018, 12:24
|- - aaarrr   Цитата(Jury093 @ Mar 31 2018, 15:24) кста...   Mar 31 2018, 12:32
|- - mantech   Цитата(Jury093 @ Mar 31 2018, 15:24) стра...   Mar 31 2018, 13:17
|- - aaarrr   Цитата(mantech @ Mar 31 2018, 16:17) На с...   Mar 31 2018, 13:23
|- - Jury093   Цитата(aaarrr @ Mar 31 2018, 16:23) Госп...   Mar 31 2018, 13:30
||- - aaarrr   Цитата(Jury093 @ Mar 31 2018, 16:30) ну в...   Mar 31 2018, 13:35
|- - mantech   Цитата(aaarrr @ Mar 31 2018, 16:23) Госп...   Mar 31 2018, 14:27
|- - aaarrr   Цитата(mantech @ Mar 31 2018, 17:27) я на...   Mar 31 2018, 15:26
- - __inline__   Ещё один момент: на отладочной плате A13-Olinuxin...   Mar 30 2018, 15:03
- - aaarrr   Allwinner'ы грузятся с нулевой SD карты при лю...   Mar 30 2018, 15:08
|- - __inline__   Цитата(aaarrr @ Mar 30 2018, 16:08) Allwi...   Mar 31 2018, 05:01
- - __inline__   Взял spl и u-boot отсюдова: http://dl.linux-sunxi....   Mar 31 2018, 06:50
|- - Jury093   Цитата(__inline__ @ Mar 31 2018, 09:50) С...   Mar 31 2018, 08:35
- - __inline__   Я много вариантов перепробовал: и с мигающим диодо...   Mar 31 2018, 11:06
|- - aaarrr   Цитата(__inline__ @ Mar 31 2018, 14:06) Н...   Mar 31 2018, 11:59
- - __inline__   На счёт соединения с ком-портом, адаптер вызвонил ...   Mar 31 2018, 14:09
|- - aaarrr   Цитата(__inline__ @ Mar 31 2018, 17:05) П...   Mar 31 2018, 14:10
|- - aaarrr   Цитата(__inline__ @ Mar 31 2018, 17:09) Е...   Mar 31 2018, 14:21
||- - __inline__   Цитата(aaarrr @ Mar 31 2018, 15:21) volat...   Mar 31 2018, 14:31
|- - Jury093   Цитата(__inline__ @ Mar 31 2018, 17:09) С...   Mar 31 2018, 15:14
|- - mantech   Цитата(Jury093 @ Mar 31 2018, 18:14) возь...   Mar 31 2018, 16:32
|- - aaarrr   Цитата(mantech @ Mar 31 2018, 19:32) Кста...   Mar 31 2018, 16:46
||- - mantech   Цитата(aaarrr @ Mar 31 2018, 19:46) Видим...   Mar 31 2018, 17:10
|- - Jury093   Цитата(mantech @ Mar 31 2018, 19:32) Кста...   Mar 31 2018, 17:29
- - __inline__   В общем что это http://radiokot.ru/articles/59/ чт...   Mar 31 2018, 14:14
- - __inline__   Вот такой адаптер (MAX3232 )   Mar 31 2018, 14:24
- - aaarrr   Цитата(__inline__ @ Mar 31 2018, 17:09) Д...   Mar 31 2018, 14:29
- - __inline__   Спасибо всем кто хотел помочь и помог! Удало...   Apr 1 2018, 08:36
|- - Jury093   Цитата(__inline__ @ Apr 1 2018, 11:36) Сп...   Apr 1 2018, 10:30
||- - aaarrr   Цитата(Jury093 @ Apr 1 2018, 13:30) там п...   Apr 1 2018, 11:08
|||- - Jury093   Цитата(aaarrr @ Apr 1 2018, 14:08) Просто...   Apr 1 2018, 15:39
|||- - aaarrr   Цитата(Jury093 @ Apr 1 2018, 18:39) карто...   Apr 1 2018, 15:51
||- - mantech   Цитата(Jury093 @ Apr 1 2018, 13:30) поищи...   Apr 1 2018, 13:43
||- - aaarrr   Цитата(mantech @ Apr 1 2018, 16:43) Т.е. ...   Apr 1 2018, 14:12
||- - mantech   Цитата(aaarrr @ Apr 1 2018, 17:12) В конс...   Apr 1 2018, 14:49
|- - mantech   Цитата(__inline__ @ Apr 1 2018, 11:36) Ка...   Jul 23 2018, 11:55
- - Obam   В маркировке MAX-а смущает "+": вот не п...   Apr 1 2018, 10:44
- - __inline__   Всем спасибо за помощь! Цитата(mantech)Я пр...   Apr 1 2018, 16:22
- - aaarrr   Цитата(__inline__ @ Apr 1 2018, 19:22) Ка...   Apr 1 2018, 16:33
- - aaarrr   Цитата(__inline__ @ Apr 1 2018, 19:22) 2)...   Apr 1 2018, 17:34


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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 18:28
Рейтинг@Mail.ru


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