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

 
 
> forced user mode transfer with write-back to base
SantaQAWSED
сообщение Sep 29 2007, 17:42
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 1-04-07
Пользователь №: 26 688



Небольшая программка для выполнения в памяти AT91SAM7SE512 (Keil, RealView) заливается с помощью интерфейса SAM-BA и запускается на выполнение (custom прошивальщик навешенной на микроконтроллер NAND Flash).
При использовании стандартного startup.s кода после передачи управления этой програмке возврата к интерфейсу SAM-BЫ естественно не происходит. Использую упрощённый startup.s:

AREA reset, CODE, READONLY
EXPORT __ENTRY
__ENTRY
InitReset
ldr sp, = TOP_OF_MEMORY ; TOP_OF_MEMORY SETA 0x208000
stmfd sp!, {lr}
IMPORT main
bl main
ldmia sp!, {r0}^
bx r0
END


В попытке собрать проект ассемблер выдаёт:
forced user mode transfer with write-back to base (для строки ldmia sp!, {r0}^)

Собственно понять его (ассемблер) можно, но как собрать проект?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Sep 29 2007, 18:19
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Код, мягко говоря, не соответствует комментариям. Замените R0 на PC и выбросьте bx. Зачем им восстанавливать режим (^), честно говоря, не понимаю. Стек переключить, разве что.


Все может, правда, обломаться, если они в thumb'е работают. А компилятор правильно ругается: ldmia sp!, {r0}^ в общем случае не есть гуд. Возможно эта ошибка где-то отключается.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 21:52
Рейтинг@Mail.ru


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