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

dimitryl

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник
  • День рождения 22.04.1978

Контакты

  • Сайт
    Array
  • ICQ
    Array
  1. можно попробовать HHD Software Serial Monitor Pro - позволяет воткнуться между двумя устройствами и проанализировать кто что передает. хм... если используется 2 ком порта чтоб снимать протокол - все просто: rx - прием, tx - передача если ком1 подключен на линию rx CD-ченджера - это прием от управляещего устройства, тогда ком2 - ответы ченджера
  2. Где взять IAR for AVR?

    http://www.google.ru/search?q=iarunicrk&am...art=10&sa=N 4 пункт сверху там можно заметить ссылочку на народ....
  3. Где взять IAR for AVR?

    скачать с сайта иара, потом - iarunicrack. ewavr-ev-web-510A работает.
  4. Самый простой способ - статически выделить память под эти буфера. в случае динамического выделения памяти из кучи (как у вас, если я правильно понял) нужно будет переписывать фукции работающие с памятью (malloc/calloc/new....). Установить какие-либо определенные границы для указателя нельзя(.
  5. Указатель это просто переменная, если нужно чтоб он не выходил за определенные границы - его надо контролировать.
  6. char *buf; // указатель int adr=(unsigned int)buf; // получаем значение указателя int *pInt=(int*)buf; // приводим указатель к типу int*
  7. в МДК включен \ARM\BIN31\fromelf.exe который как раз и генерит hex-файл его можно отдельно запустить с ключем "--bin" - на выходе будет Plain Binary. только он конвертирует .elf(.axf) получаемый на выходе линковщика. если нужно именно из .hex - то утилитки hex2bin.
  8. к сожалению миграция невозможна(
  9. Доброго времени суток)) Хотелось бы расположить структуру в самом конце используемого флеша flash_data.c: const int Fdata[3] = { 1, 2, 3}; использую для этого скаттер: LR_IROM1 0x40002000 0x0003E000 { ; load region size_region ER_IROM1 0x40002000 0x0003E000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) flash_data.o (*, +Last) } RW_IRAM1 0x20000040 0x0000FFC0 { ; RW data .ANY (+RW +ZI) } } почти получается - струтура ложиться самой последней из RO секций, но ...я так понял далее идет все то, что дожно при старте быть скопировано в РАМ (функции, ...), и никак не могу понять как положить структуру после них.
  10. В этом конкретном примере не совсем правильная работа с регистровыми переменными, приводящая к появлению лишней команды копирования из регистра в регистр. Ну а в виде MOV R16, R24 MOV R24, R16 по моему заставляет улыбнуться.
  11. IAR прикалываеться

    IAR Atmel AVR C/C++ Compiler V4.21A/W32, Evaluation Version btTemp далее не используется. компилировалось с ключом -s2 (Best debug support) листинг: 1) 129 Uart1_context.bTxCount= btTemp + 1; \ 00000084 2F08 MOV R16, R24 \ 00000086 9503 INC R16 \ 00000088 9300.... STS (Uart1_context + 2), R16 2) 129 Uart1_context.bTxCount= ++btTemp; \ 00000084 9583 INC R24 \ 00000086 2F08 MOV R16, R24 \ 00000088 2F80 MOV R24, R16 \ 0000008A 9300.... STS (Uart1_context + 2), R16
  12. в кейле вроде такого нет. а в VS есть nmake - написал мейкфайл и все компилиться)) и связка VS+VA очень удачная - особенно если в VA платформы прописать - под каждую платформу свой набор .h да, про минус забыл - отладчик не прикрутишь... приходиться пользовать AStudio и uVision)).
  13. Altera Byte-Blaster + Avreal ))) в CVAVR tools->configure->add добавляете коммандную строку или батник для прошивки. После компиляции проекта - shift-F6 (или кака там будет) и все - мк зашит. PS. прошу прощения, внимательно прочитал - нужен параллельный))) это для последовательного. Если поддерживает ком.строку - то идея та же.
  14. IAP в STR71x

    Добрый день, насколько я понял это проблема не ИАП а в какие адреса компилятор кладет скомпилированный код пользуюсь кейлом там в файле startup.s есть такое: // Starupt Code must be linked first at Address at which it expects to run. $IF (EXTMEM_MODE) CODE_BASE EQU 0x60000000 $ELSEIF (RAM_MODE) CODE_BASE EQU 0x20000000 $ELSE CODE_BASE EQU 0x40000000 $ENDIF если это дело решать "в лоб" то можно оставить только строку CODE_BASE EQU 0x40000000 если правильно то расположение кода можно выбрать в настройках компилятора. )) надеюсь поможет.
×
×
  • Создать...