Перейти к содержанию
    

andrewtomsk

Участник
  • Постов

    4
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о andrewtomsk

  • День рождения 20.06.1980

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. Среда: EWARM 5.50, контроллер SAM7 Привожу "кусок" cstarup.asm, полученный из дизассемблера C-SPY. Здесь инициализируются стеки для режимов, [font="Lucida Console"] __handlerReset: 1 LDR SP, =SFE(CSTACK) 2 0x100cd8: 0xe59fd028 LDR sp, _?0 [0x100d08] ; ABT_STACK$$Base 3 MSR CPSR_c, #ARM_MODE_ABT | I_BIT | F_BIT 4 0x100cdc: 0xe321f0d7 LDRD pc, [r1, -r7]! 5 LDR SP, =SFE(ABT_STACK) 6 0x100ce0: 0xe59fd024 LDR sp, _?1 [0x100d0c] ; ABT_STACK$$Limit 7 MSR CPSR_c, #ARM_MODE_IRQ | I_BIT | F_BIT 8 0x100ce4: 0xe321f0d2 LDRD pc, [r1, -r2]! 9 LDR SP, =SFE(IRQ_STACK) 10 0x100ce8: 0xe59fd020 LDR sp, _?2 [0x100d10] ; IRQ_STACK$$Limit 11 MSR CPSR_c, #ARM_MODE_ABT | I_BIT | F_BIT 12 0x100cec: 0xe321f0d7 LDRD pc, [r1, -r7]! 13 LDR SP, =SFE(ABT_STACK) 14 0x100cf0: 0xe59fd014 LDR sp, _?1 [0x100d0c] ; ABT_STACK$$Limit 15 MSR CPSR_c, #ARM_MODE_SYS | I_BIT | F_BIT 16 0x100cf4: 0xe321f0df LDRD pc, [r1, -pc]! 17 LDR SP, =SFE(CSTACK) 18 0x100cf8: 0xe59fd008 LDR sp, _?0 [0x100d08] ; ABT_STACK$$Base 19 BL LowLevelInit [/font] Если рассмотреть сроку [1]. IAR преобразовал эту строчку (убрал оператор SFE и подставил адрес) 1 LDR SP, =SFE(CSTACK) в строчку [2] 2 0x100cd8: 0xe59fd028 LDR sp, _?0 [0x100d08] ; ABT_STACK$$Base Пока все понятно. Теперь рассмотрим строчку [3] 3 MSR CPSR_c, #ARM_MODE_ABT | I_BIT | F_BIT IAR преобразовал ее в строку [4] 4 0x100cdc: 0xe321f0d7 LDRD pc, [r1, -r7]! которая мне непонятна. Откуда взялась команда LDRD? Ее не должно быть в этой версии архитектуры ядра. Воспользовавшись "ARM Arhitecture referene manual" разобрал код команды 0xe321f0d7. Получается правильная команда MSR, как и задумывалось. Тогда перечитал "Assembler Reference Manual", главу "Assembler psevdo-instructions", но там не оказалось такой псевдо-инструкции. Есть разные варианты LDR, но LDRD нет. Что это может быть? Специфика C-SPY при отображении?
  2. Около полугода назад интересовался ценами продуктор от IAR. Прайс в файле. Цены в SEK - Шведская кро́на. На 2 февраля 2010 1 шведская крона = 4.16821325 руб Price_IAR.pdf
  3. iarchive

    Использую IAR 5.40 для ARM и из его набора утилиту The IAR Archive Tool—iarchive Сначала создаю библиотеку, например, mylib.a. Объектый файл module.o скомпилирован из исходника module.c, в котором есть одна функция int func (int value) { return (value + 1); } Библиотека создается так: iarchive mylib.a module.o После этого полученная библиотека подключается к проекту в IAR (Прописывается путь в настройках проекта в секции линковщика: $PROJ_DIR$\lib\mylib.a) Теперь при каждом начале сеанса отладки (запуск C-SPY Debugger), IAR просит указать путь с файлу исходнику module.c, чтобы проводить отладку в соответствии коду. А теперь вопрос: Как избавиться от назойливой просьбы IAR указания пути к исходнику? Мне библиотека для того и нужна, чтобы не показывать исходного кода. Может библиотеку нужно собирать с некими ключами? В силу возможности подобного говорит тот факт, что run-time библиотеки самого IAR (всякие деления, уможения, прологи, эпилоги), не требуют пути к исходному коду, а молча прогоняют код в ассемблерном варианте.
  4. Plugins для C-SPY

    Тоже разбирался с этой темой. (Хотел написать plugin). После неудачных поисков написал в IAR, на что мне ответили: "Кстати, у Вас наше ПО с лицензией? Если да, то мы с удовльствием вышлем Вас этот документ (SDK), т.к. он распространяется только для поддержки пользоватетлей с лицензированным ПО"
×
×
  • Создать...