AT91SAM9260: С чего начать?
AT91SAM9260: С чего начать?
Здоров ребят!
проблема такая: раньше (да и сейчас макетка лежит) баловался с Attiny2313 - LCD дисплей датчик температуры DS1820 моргание светодиодами, мало-по-малу изучал сам по этому сайту (Кстати большое спасибо много интересного нашел!). Сейчас устроился на работу, они работают с микроконтроллерами на основе ядра ARM, дали отладочную плату AS-9260 (аналог AT91SAM9260-EK), даташиты и IAR тоже дали.
Вопрос с чего начать?
перерыл половину интернета но на ARM9 информации не так много особенно на русском, на ARM7 гораздо больше, говорят если ARM7 освоить то и ARM9 не сложно будет. Хорошо - скачал книжку "микроконтроллеры arm7 семейства at91sam7", но там только как бы общие сведения (регистры, что зачем нужно) по идее все понятно но как начать непонятно. Вычитал что программа зашивается определенным образом и разными способами.
Вообщем на данный момент я запустил пример getstarting (для моей платы) bp IAR Embedded вроде светодиод мигает, но коду там море, различных заголовочных файлов для инициализации и т п. Хотелось бы разобраться во всем.
на Attiny2313 вообще проблем не составляло помигать светодиодом, а тут ну прям много всего.
Нужна помощь)
Где можно почитать? что почитать?
хотя бы пока чтобы просто проц запустился до процедуры main();
проблема такая: раньше (да и сейчас макетка лежит) баловался с Attiny2313 - LCD дисплей датчик температуры DS1820 моргание светодиодами, мало-по-малу изучал сам по этому сайту (Кстати большое спасибо много интересного нашел!). Сейчас устроился на работу, они работают с микроконтроллерами на основе ядра ARM, дали отладочную плату AS-9260 (аналог AT91SAM9260-EK), даташиты и IAR тоже дали.
Вопрос с чего начать?
перерыл половину интернета но на ARM9 информации не так много особенно на русском, на ARM7 гораздо больше, говорят если ARM7 освоить то и ARM9 не сложно будет. Хорошо - скачал книжку "микроконтроллеры arm7 семейства at91sam7", но там только как бы общие сведения (регистры, что зачем нужно) по идее все понятно но как начать непонятно. Вычитал что программа зашивается определенным образом и разными способами.
Вообщем на данный момент я запустил пример getstarting (для моей платы) bp IAR Embedded вроде светодиод мигает, но коду там море, различных заголовочных файлов для инициализации и т п. Хотелось бы разобраться во всем.
на Attiny2313 вообще проблем не составляло помигать светодиодом, а тут ну прям много всего.
Нужна помощь)
Где можно почитать? что почитать?
хотя бы пока чтобы просто проц запустился до процедуры main();
- Реклама
Re: AT91SAM9260: С чего начать?
Чем тебя даташиты и аппноты на атмел.ком не устраивают ?
Этого исчерпывающе.
Этого исчерпывающе.
Re: AT91SAM9260: С чего начать?
Да и вобще он довольно устаревший уже, если чтото новое и далеко идущее планируешь делать.
Re: AT91SAM9260: С чего начать?
Нашел книгу додэка - микроконтроллеры arm7 семейства at91sam7.2008. На ARM7 все то же самое что и ARM9 только хар-ки другие. Даташиты пока сложновато понимать.
Спасибо за ответы.
Спасибо за ответы.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
ИМХО, если время не слишком критично, лучше осваивать, работая исключительно на ассемблере и без всяких левых библиотек. Только так сможете понять, что там к чему и как работает.
По работе с различными контроллерами (USART, SPI и т.д.) вполне годится литература по SAM7: у Атмела в этом плане АРМы в значительной степени совместимы. Ну, даташит -- само собой, особенно если решите действительно разбираться с процессором, а не тупо брать чужой код за основу: надо ведь инициализировать процессор сначала, это не АВРки, где, кроме фузов, особо делать и нечего (ну, стек установить).
Пы.Сы. А устаревший или нет -- особой роли не играет, особенно при освоении. Это для серийного производства обычно лучше новое закладывать.
По работе с различными контроллерами (USART, SPI и т.д.) вполне годится литература по SAM7: у Атмела в этом плане АРМы в значительной степени совместимы. Ну, даташит -- само собой, особенно если решите действительно разбираться с процессором, а не тупо брать чужой код за основу: надо ведь инициализировать процессор сначала, это не АВРки, где, кроме фузов, особо делать и нечего (ну, стек установить).
Пы.Сы. А устаревший или нет -- особой роли не играет, особенно при освоении. Это для серийного производства обычно лучше новое закладывать.
- Реклама
Re: AT91SAM9260: С чего начать?
Да действительно SII, на данный момент помигал светодиодом и связался с компьютером по USART , но говорят (на работе) что нужно знать досканально, т.е ументь самому все инициализировать включать и т.п.
Я с Ассемблером совсем никогда не работал.
Посоветуете какие книги почитать? (на русском)
хотя бы на данный момент для того чтобы разобраться как инициализировать ARM в самом начале, до выполнения main.c
буду очень благодарен! (время ограничено(( )
Я с Ассемблером совсем никогда не работал.
Посоветуете какие книги почитать? (на русском)
хотя бы на данный момент для того чтобы разобраться как инициализировать ARM в самом начале, до выполнения main.c
буду очень благодарен! (время ограничено(( )
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
На русском никогда не встречал, но и не искал за ненадобностью. Сам пользуюсь только справочной литературой: описанием архитектуры ARM (качается с сайта ARM) и даташитом на МК (с сайта ATMEL).
Кстати, в упомянутом даташите обязательно изучите раздел Errata: подозреваю, что у 9260 ошибок полно (их очень много у 9261 -- одним из тех, с кем имею дело; вот у 9G45 многое исправили).
Кстати, в упомянутом даташите обязательно изучите раздел Errata: подозреваю, что у 9260 ошибок полно (их очень много у 9261 -- одним из тех, с кем имею дело; вот у 9G45 многое исправили).
Re: AT91SAM9260: С чего начать?
А причем тут ассемблер то ?lishni писал(а):Да действительно SII, на данный момент помигал светодиодом и связался с компьютером по USART , но говорят (на работе) что нужно знать досканально, т.е ументь самому все инициализировать включать и т.п.
Я с Ассемблером совсем никогда не работал.
"Инициализировать досканально" на язык никак не завязано.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
Без ассемблера как минимум не построишь таблицу векторов и не сделаешь инициализацию стека. Всё остальное действительно можно инициализировать и на ЯВУ. Правда, без знания ассемблера не может быть досконального знания микроконтроллера 
Re: AT91SAM9260: С чего начать?
Да как раз об этом речь =) о стеке и векторах прерывания. в файле sturtup.s
может быть есть какой-нибудь пример? где все очень подробно написано какая строчка, что делает, и зачем и почему =)
в перспективе необходимо уметь оптимизировать код, ясно что сначала оптимальный алгоритм нужно сделать, а дальше паходу нужно в ассемблер лезть)
может быть есть какой-нибудь пример? где все очень подробно написано какая строчка, что делает, и зачем и почему =)
в перспективе необходимо уметь оптимизировать код, ясно что сначала оптимальный алгоритм нужно сделать, а дальше паходу нужно в ассемблер лезть)
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
Инициализация целиком и полностью зависит от задачи и от используемых инструментов. Я, например, решать стоящие задачи собираюсь (собственно, и решаю) не так, как традиционно поступают на микроконтроллерах (целевая задача, работающая на "голом" железе или, в лучшем случае, использующая крайне примитивную "подложку", гордо именуемую операционной системой): такой поход хорош для простых задач, традиционно решавшихся на 8-разрядных МК, у меня же задачи существенно обширней сложней. Поэтому я создаю свою ОС, хотя небольшую, но полноценную (чем она кардинально отличается от всяких там FreeRTOS, RTX и прочая; другое дело, что всё сразу сделать невозможно, и процесс создания собственно ОС растягивается на годы: сначала делаю то, что нужно прямо сейчас, потом -- нечто менее востребованное, ну и т.д.), а параллельно с этим использую её для решения целевых задач, стоящих перед нашей конторой. Соответственно, моя низкоуровневая инициализация рассчитана на потребности моей системы и является несовместимой со стандартными библиотеками популярных компиляторов, будь то IAR, Keil или GCC, тем более, что Си я вообще нигде и никак не использую и не буду использовать; весь системный код пишу на ассемблере, а прикладной -- на Аде (ещё думаю Фри Паскаль прикрутить, но руки никак не дойдут). В общем, мой случай вряд ли годится в качестве примера для обучения, тем более быстрого.
Ну а вообще, в первую очередь надо читать документацию на процессор; без этого всё равно ничего толком понятно не будет. Надо разбираться в принципах работы процессора, а не пытаться что-то понять по каким-то обрывкам кода: эти обрывки способны только кашу в голове породить, ну а нужно реальное понимание того, как что работает, взаимодействует и т.д. и т.п.
Если угодно, то пожалуйста, ниже привожу мой стартовый код для любых процессоров "настоящей" архитектуры ARM (не ARMv6-M и ARMv7-M, более известных по названию процессорых ядер для этих архитектур -- Cortex-M; для них стартовый код совершенно другой, поскольку это, строго говоря, не АРМы). Он написан для ассемблера от Кейл, но суть не меняется, при необходимости его можно и для ИАР адаптировать, и для ГНУсного ассемблера.
Ну а вообще, в первую очередь надо читать документацию на процессор; без этого всё равно ничего толком понятно не будет. Надо разбираться в принципах работы процессора, а не пытаться что-то понять по каким-то обрывкам кода: эти обрывки способны только кашу в голове породить, ну а нужно реальное понимание того, как что работает, взаимодействует и т.д. и т.п.
Если угодно, то пожалуйста, ниже привожу мой стартовый код для любых процессоров "настоящей" архитектуры ARM (не ARMv6-M и ARMv7-M, более известных по названию процессорых ядер для этих архитектур -- Cortex-M; для них стартовый код совершенно другой, поскольку это, строго говоря, не АРМы). Он написан для ассемблера от Кейл, но суть не меняется, при необходимости его можно и для ИАР адаптировать, и для ГНУсного ассемблера.
Код: Выделить всё
AREA RESET, CODE, READONLY
ARM
Vectors ldr PC, Reset_Addr
ldr PC, UD_Addr
ldr PC, SVC_Addr
ldr PC, PAbt_Addr
ldr PC, DAbt_Addr
DCD 0
GO_TO_IRQ_HANDLER
IF FAST_IRQ = 1
GO_TO_FIQ_HANDLER
ELSE
b .
ENDIF
Reset_Addr DCD Reset
UD_Addr DCD UD_Handler
SVC_Addr DCD SVC_Handler
PAbt_Addr DCD PAbt_Handler
DAbt_Addr DCD DAbt_Handler
; ========================
;
; ОСОБАЯ ОБРАБОТКА ВНЕШНИХ И БЫСТРЫХ ПРЕРЫВАНИЙ
;
; ========================
;
; Использованный здесь макрос может сформировать код, предназначенный для выпол-
; нения особой обработки внешних и быстрых прерываний. На него не накладывается
; никаких формальных ограничений, он лишь должен быть соответствующим образом
; увязан с кодом инициализации процессора, платы и устройств.
SPECIAL_IRQ
; ========================
;
; ПОДПРОГРАММА ОБРАБОТКИ СБРОСА
;
; ========================
;
; Эта подпрограмма получает управление сразу после загрузки образа системы. Фор-
; мально она является обработчиком сброса, хотя фактически это не всегда так:
; образ системы может загружаться из внешнего источника начальным загрузчиком,
; намертво зашитым в ПЗУ процессора; в этом случае после загрузки образа загруз-
; чик имитирует сброс, передавая управление на нулевой адрес образа системы.
;
; Обработчик сброса загружает указатели стеков привилегированных режимов, выпол-
; няет инициализацию базовой платы и процессора с помощью соответствующего ма-
; кроса, после чего передаёт управление программе инициализации ядра (KIP).
AREA KERNEL, CODE, READONLY
ARM
Reset ROUT
; Установка указателей стеков привилегированных режимов.
ldr SP, =SVC_Stack_Top
msr CPSR_c, #PSR_MODE_ABT_D
ldr SP, =ABT_Stack_Top
msr CPSR_c, #PSR_MODE_UND_D
ldr SP, =UD_Stack_Top
msr CPSR_c, #PSR_MODE_IRQ_D
ldr SP, =IRQ_Stack_Top
IF FAST_IRQ = 1
msr CPSR_c, #PSR_MODE_FIQ_D
ldr SP, =FIQ_Stack_Top
ENDIF
msr CPSR_c, #PSR_MODE_SYS_D
ldr SP, =KStack_Top
; Инициализация процессора и процессорной платы. После выполнения этого
; макроса будет установлена система команд Thumb.
BOARD_INIT
; Переход на программу инициализации ядра.
bl KIP
- РадиоЛоматель
- Мудрый кот
- Сообщения: 1733
- Зарегистрирован: Чт авг 21, 2008 22:03:30
- Откуда: Одесса(Украина)
- Контактная информация:
Re: AT91SAM9260: С чего начать?
В начале своей программистской деятельности, я истер до дыр даташит на МК pic16f84, но так и не понял, как оно работает. Точнее понял, но совершенно не понимал, как это применить для конкретной задачи. Ну в общем, почти бросил это дело, но случайно наткнулся на хорошо комментированый пример "бегущего огонька" на ассемблере. С тех пор, уже лет 8 я программирую МК, и авр и пик... И конечно, мне с моей колокольни кажется, что лучше ДШ ничего быть не может. Но для новичка это не так.SII писал(а):Ну а вообще, в первую очередь надо читать документацию на процессор; без этого всё равно ничего толком понятно не будет. Надо разбираться в принципах работы процессора, а не пытаться что-то понять по каким-то обрывкам кода: эти обрывки способны только кашу в голове породить, ну а нужно реальное понимание того, как что работает, взаимодействует и т.д. и т.п.
Так что вы зря так плохо относитесь к примерам. Нужно просто совмещать приятное с полезным.
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Люблю Си...
Re: AT91SAM9260: С чего начать?
Даташита, который конкретно на МК, не достаточно.
А если дополнить даташитом на само ядро, ерратой, и бумажкой-напутствием по железной части к данному МК - уже вполне.
А если дополнить даташитом на само ядро, ерратой, и бумажкой-напутствием по железной части к данному МК - уже вполне.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
РадиоЛоматель, человек же ясно написал, что он уже возился с МК и что работает программистом. Соответственно, его нельзя считать новичком.
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
И не забыть описание архитектуры процессораSatyr писал(а):Даташита, который конкретно на МК, не достаточно.
А если дополнить даташитом на само ядро, ерратой, и бумажкой-напутствием по железной части к данному МК - уже вполне.
- РадиоЛоматель
- Мудрый кот
- Сообщения: 1733
- Зарегистрирован: Чт авг 21, 2008 22:03:30
- Откуда: Одесса(Украина)
- Контактная информация:
Re: AT91SAM9260: С чего начать?
Ммм.. Я не правильно выразился. Это не ДШ на конкретный МК, а некий сборник: система команд, прерывания, стек, описание переферии, регистры... Для быстрого старта, так сказать. До сих пор у меня распечатаный валяется в папке. Даже на русском. Ну ладно, не суть. А то увел в сторону тему 
(*tmp) &= ~( ( (param1 & (1<<PARAM1_BIT6)) || ((param2==PARAM2_TRUE)&&(--param3)) ) ? (param1 & (~param2)) : (Func1() | FUNC1_FLAGS) );
Люблю Си...
Люблю Си...
Re: AT91SAM9260: С чего начать?
SII я думаю можно считать меня новичком ) т.к пока что только испытательный срок а не работа)
Интересный подход SII, думается мне это очень удобно, спасибо за код. думаю будет полезно. но пока рано, ассемблер только изучаю. У меня есть ARM Architecture Reference Manual, но минус что это все на английском, нет ли у кого нибудь на русском про архитектуру АРМ.
Сейчас начал читать ДШ к AT91SAM9260 но я все же думаю что там общая информация, просто описание регистров (или есть алгоритмы что как делается?) . программировать он меня не научит.
РадиоЛоматель а у Вас не осталось этой информации в электронном виде?
помогите разобраться с кодом стартапа, из IAR:
хочется каждую строчку понимать, например сначала эти
MODULE ?cstartup что это почему там знак вопроса, для компилятора эта директива или что?
;; Forward declaration of sections.
SECTION IRQ_STACK:DATA:NOROOT(2) тоже непонятно(
SECTION CSTACK:DATA:NOROOT(3)
буду очень благодарен за разъяснения уважаемые)
Интересный подход SII, думается мне это очень удобно, спасибо за код. думаю будет полезно. но пока рано, ассемблер только изучаю. У меня есть ARM Architecture Reference Manual, но минус что это все на английском, нет ли у кого нибудь на русском про архитектуру АРМ.
Сейчас начал читать ДШ к AT91SAM9260 но я все же думаю что там общая информация, просто описание регистров (или есть алгоритмы что как делается?) . программировать он меня не научит.
РадиоЛоматель а у Вас не осталось этой информации в электронном виде?
помогите разобраться с кодом стартапа, из IAR:
Код: Выделить всё
/*
IAR startup file for AT91SAM9260 microcontrollers.
*/
MODULE ?cstartup
;; Forward declaration of sections.
SECTION IRQ_STACK:DATA:NOROOT(2)
SECTION CSTACK:DATA:NOROOT(3)
//------------------------------------------------------------------------------
// Headers
//------------------------------------------------------------------------------
#define __ASSEMBLY__
#include "board.h"
//------------------------------------------------------------------------------
// Definitions
//------------------------------------------------------------------------------
#define ARM_MODE_ABT 0x17
#define ARM_MODE_FIQ 0x11
#define ARM_MODE_IRQ 0x12
#define ARM_MODE_SVC 0x13
#define ARM_MODE_SYS 0x1F
#define I_BIT 0x80
#define F_BIT 0x40
//------------------------------------------------------------------------------
// Startup routine
//------------------------------------------------------------------------------
/*
Exception vectors
*/
SECTION .vectors:CODE:NOROOT(2)
PUBLIC resetVector
PUBLIC irqHandler
EXTERN Undefined_Handler
EXTERN SWI_Handler
EXTERN Prefetch_Handler
EXTERN Abort_Handler
EXTERN FIQ_Handler
ARM
__iar_init$$done: ; The interrupt vector is not needed
; until after copy initialization is done
resetVector:
; All default exception handlers (except reset) are
; defined as weak symbol definitions.
; If a handler is defined by the application it will take precedence.
LDR pc, =resetHandler ; Reset
LDR pc, Undefined_Addr ; Undefined instructions
LDR pc, SWI_Addr ; Software interrupt (SWI/SVC)
LDR pc, Prefetch_Addr ; Prefetch abort
LDR pc, Abort_Addr ; Data abort
B . ; RESERVED
LDR pc, =irqHandler ; IRQ
LDR pc, FIQ_Addr ; FIQ
Undefined_Addr: DCD Undefined_Handler
SWI_Addr: DCD SWI_Handler
Prefetch_Addr: DCD Prefetch_Handler
Abort_Addr: DCD Abort_Handler
FIQ_Addr: DCD FIQ_Handler
/*
Handles incoming interrupt requests by branching to the corresponding
handler, as defined in the AIC. Supports interrupt nesting.
*/
irqHandler:
/* Save interrupt context on the stack to allow nesting */
SUB lr, lr, #4
STMFD sp!, {lr}
MRS lr, SPSR
STMFD sp!, {r0, lr}
/* Write in the IVR to support Protect Mode */
LDR lr, =AT91C_BASE_AIC
LDR r0, [r14, #AIC_IVR]
STR lr, [r14, #AIC_IVR]
/* Branch to interrupt handler in Supervisor mode */
MSR CPSR_c, #ARM_MODE_SYS
STMFD sp!, {r1-r3, r4, r12, lr}
BLX r0
LDMIA sp!, {r1-r3, r4, r12, lr}
MSR CPSR_c, #ARM_MODE_IRQ | I_BIT
/* Acknowledge interrupt */
LDR lr, =AT91C_BASE_AIC
STR lr, [r14, #AIC_EOICR]
/* Restore interrupt context and branch back to calling code */
LDMIA sp!, {r0, lr}
MSR SPSR_cxsf, lr
LDMIA sp!, {pc}^
/*
After a reset, execution starts here, the mode is ARM, supervisor
with interrupts disabled.
Initializes the chip and branches to the main() function.
*/
SECTION .cstartup:CODE:NOROOT(2)
PUBLIC resetHandler
EXTERN LowLevelInit
EXTERN ?main
REQUIRE resetVector
ARM
resetHandler:
/* Set pc to actual code location (i.e. not in remap zone) */
LDR pc, =label
/* Perform low-level initialization of the chip using LowLevelInit() */
label:
LDR r0, =LowLevelInit
LDR r4, =SFE(CSTACK)
MOV sp, r4
BLX r0
/* Set up the interrupt stack pointer. */
MSR cpsr_c, #ARM_MODE_IRQ | I_BIT | F_BIT ; Change the mode
LDR sp, =SFE(IRQ_STACK)
/* Set up the SYS stack pointer. */
MSR cpsr_c, #ARM_MODE_SYS | F_BIT ; Change the mode
LDR sp, =SFE(CSTACK)
/* Branch to main() */
LDR r0, =?main
BLX r0
/* Loop indefinitely when program is finished */
loop4:
B loop4
END
MODULE ?cstartup что это почему там знак вопроса, для компилятора эта директива или что?
;; Forward declaration of sections.
SECTION IRQ_STACK:DATA:NOROOT(2) тоже непонятно(
SECTION CSTACK:DATA:NOROOT(3)
буду очень благодарен за разъяснения уважаемые)
-
SII
- Вымогатель припоя
- Сообщения: 635
- Зарегистрирован: Пт янв 30, 2009 14:50:35
- Откуда: Солнечногорск
Re: AT91SAM9260: С чего начать?
Без английского -- абсолютно никуда. Полноценных и качественных переводов по АРМу в природе не существует, бывают лишь отдельные отрывки (например, я кое-что по поводу архитектуры описал на [url]ru.osdev.wikia.com[/url], но далеко не всё, да и времени практически нет, чтобы продолжать сей труд). Так что сразу привыкайте к использованию англоязычной документации.
Чтобы что-то понимать в собственно коде, почитайте для начала ARM Architecture Reference Manual (надеюсь, у Вас на ту версию, что нужно? 9260 относится к ARMv5TEJ, в то время как новейшие АРМы -- разновидности ARMv7, и документация на них разная), разделы по регистрам общего назначения, регистрам состояния (PSR) и режимам процессора (обратите особое внимание на кучу PSR, SP и LR), а затем по обработке прерываний самим процессором. Всё это есть и на упомянутой Вике, так что можете смотреть параллельно её и АРМовский мануал. Ну а потом, когда в теории эти вопросы вроде бы поймёте, беритесь за разбор собственно стартового кода. Он очень простой (но может без проблем быть сокращён на 8 байт, а если программа достаточно компактно расположена -- в пределах, кажется, 16 Мбайт, лень сейчас точно вспоминать -- то и больше).
Синтаксис и значения параметров директив даны в описании транслятора, в данном случае IARовского. Поскольку я им не пользуюсь, то ничего толком сказать не могу. Так что по этому вопросу читайте документацию на IARовский ассемблер.MODULE ?cstartup что это почему там знак вопроса, для компилятора эта директива или что?
;; Forward declaration of sections.
SECTION IRQ_STACK:DATA:NOROOT(2) тоже непонятно(
SECTION CSTACK:DATA:NOROOT(3)
Чтобы что-то понимать в собственно коде, почитайте для начала ARM Architecture Reference Manual (надеюсь, у Вас на ту версию, что нужно? 9260 относится к ARMv5TEJ, в то время как новейшие АРМы -- разновидности ARMv7, и документация на них разная), разделы по регистрам общего назначения, регистрам состояния (PSR) и режимам процессора (обратите особое внимание на кучу PSR, SP и LR), а затем по обработке прерываний самим процессором. Всё это есть и на упомянутой Вике, так что можете смотреть параллельно её и АРМовский мануал. Ну а потом, когда в теории эти вопросы вроде бы поймёте, беритесь за разбор собственно стартового кода. Он очень простой (но может без проблем быть сокращён на 8 байт, а если программа достаточно компактно расположена -- в пределах, кажется, 16 Мбайт, лень сейчас точно вспоминать -- то и больше).
Re: AT91SAM9260: С чего начать?
Это не минус, это нормально.lishni писал(а): У меня есть ARM Architecture Reference Manual, но минус что это все на английском, нет ли у кого нибудь на русском про архитектуру АРМ.
На русском есть пожалуй только под барахло, которому прилично за десяток лет и столько ж не меняется ничего.
Чтото свежее, динамичное, актуальное - только на языке производителя
Re: AT91SAM9260: С чего начать?
Понятно) да без английского никуда паходу) буду переводить потихонечку тогда этот толмут =)
Посоветуйте что почитать про bootloader-ы ? =)
Посоветуйте что почитать про bootloader-ы ? =)


