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

IJAR

Свой
  • Постов

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

  • Посещение

Весь контент IJAR


  1. Сталкивался с подобной проблемой - решил ее так: Загрузчик размещен в области BootLoader, при этом функция непосредственной записи во Flash занимает строго 1 страницу в 256 байт (хотя сама она короче) Перед заменой загрузчика, во Flash для Application, пишется промежуточный загрузчик, но он использует функцию записи страницы Flash из основного загрузчика. Далее - управление передается на промежуточный загрузчик, который производит обновление основного, при этом страница с функцией записи Flash пропускается. Все отлично работает.
  2. IAR AVR + ATMega32 = Bootloader?

    Правильно - не должна работать: :10 3800 00 0C 94 72 00 18 95 18 95 18 95 18 95 1895189598 означает: начиная с адреса 0x3800 записать следующие 16 байт 0x3800 0x940C 0x0072 jmp 0x0072 0x3802 0x9518 reti 0x3803 0x9518 reti ...... т.е. при старте с адреса 0x3800 будет выполнен переход на адрес 0x0072 - где может быть все что угодно, но только не Ваша программа Чтобв компилятор положил код с нужного адреса надо отрихтовать файл .xls
  3. Разработка ПО для Atmel: AVR, ARM7 Разработка КД на свое ПО назначение ПО: аппаратура сбора и передачи данных по каналам связи RS232, RS485,USB,Ethernet. Все ПО для жесткой временной диаграммы c с ограничением на использование прерываний. среда разработки: AVR STUDIO, IAR Embedded Workbench языки программирования: ASM(эпизодически), C/C++ IAR для AVR и ARM7 отладка ПО: на готовом "железе"/в симуляторах IDE опыт работы: не менее 1 года. Знание Visual Studio, Delpi приветствуется условия работы: район м. Октябрьское поле/м. Щукинская. ПН..ПТ с 10 до 18. Соц. пакет Возможны командировки 1-3 раза в год по 1-2 недели по России (цивильные). Работа интересная. Внедрение в производство - гарантируем. условия оплаты: регулярно-своевременная, по результатам собеседования прописка: постоянная г. Москва/Московская обл. связь для подачи резюме: [email protected] в теме укажите "Предложение по работе" контактное лицо: Горюнов Евгений Николаевич
  4. Тормозит ли прямой доступ к памяти от перефирии работу программы, и если да то на сколько?
  5. Посмотрите по этой ссылке. http://www.fractal.com.ru/_pdf/description/4_39.pdf это сделано для pic18 контроллеров, но легко может быть реализовано для AVR
  6. Интересен был бы перевод DS на AT90CAN.....
  7. Да, конечно есть довольно хитрый BootLoader - на него и старт. Просто хотелось в свободную память прописать настроечную программу и вызывать ее при старте и зажатом Button.
  8. Спасибо! Вроде бы помогла следующая рихтовка *.xls Проект ложится куда попросил и старт на _..X_FLASH_START Но может что то всплыть потом. Может есть что-либо более цивилизованное?
  9. Проект по заданному адресу

    IAR 4.12 Mega128 Есть ли компактный/простой способ разместить ВЕСЬ проект начиная с заданного адреса (myAdres)? Если есть пожалуйста подскажите. Рихтовка файла *.xls "загоняет" код в нужные адреса, но оствляет 0x0000 JMP ?C_STARTUP ...... ?C_STARTUP: RESTART: myAdres ...... по адресу 0x0000, а вот этого и хотелось бы избежать.
  10. [удалил НЕНУЖНОЕ цитирование] Может быть установка параметра Com порта: "Управление потоком" в GT в в состояние "Нет" поможет ?
  11. Спасибо! Это спасет "отца Русской демократии"
  12. Есть проект: "myProject.aps" в проекте есть файл "myProject.h": ..... ;версия программы .equ BIOS_VERSION =01 ; .equ BIOS_SUBVERSION =07 ; ......... Хотелось бы получить выходные файлы: "myProject_V107.hex" "myProject_V107.eep" Такое возможно и если да то как? Заранее благодарен за любую помощь.
  13. Спасибо!!! ....что то вголову зашло:я смотрел файйл <inavr.h> ... плохо когда длинные праздники :smile3046:
  14. Ничего не понял!!! Можно поподробнее, как это будет выглядеть в приведенном мной примере.
  15. может #if defined(ATmega128) #include <iom128.h> #endif это не проходит, поскольку ATmega128 нигде не определяется, в том числе и компилятором.
  16. #include <файл описания.h>

    IAR Embeded ... 4.12 Пытаюсь: #if __cpu_name==ATmega128 #include <iom128.h> #endif #if __cpu_name==AT90CAN128 #include <iocan128.h> #endif К сожалению такая конструкция не работает, точнее работают оба условных оператра, вне завистмости от установленнго на вкладке General Options => Target => Processor Configuranion типа процессора Вообще возможно ли "привязать" вставляемый файл *.h к типу выбранного процессора?
  17. Согласен что наметился путь решения, хотя и довольно тернистый. Что касается coff файла, то его не удается создать, а открыть то как раз получается, например coff файл для pic процессоров вполне разбираем.
  18. Из исходника взять данные конечно можно, но из файлов компилятора проще, легче парсить строки, поскольку в них информация структуирована, например в .map: ABSOLUTE Relative segment, address: DATA 0000010C - 0000010D (0x2 bytes), align: 0 Segment part 14. ROOT. ENTRY ADDRESS REF BY ===== ======= ====== bi_Wector_USER 0000010C ------------------------------------------------------------------------- NEAR_N Relative segment, address: DATA 00000182 - 00000195 (0x14 bytes), align: 0 Segment part 25. Intra module refs: main ENTRY ADDRESS REF BY ===== ======= ====== l_b 00000182 ------------------------------------------------------------------------- CODE Relative segment, address: CODE 0001E0D8 - 0001E0E3 (0xc bytes), align: 1 Segment part 26. ENTRY ADDRESS REF BY ===== ======= ====== __low_level_init 0001E0D8 ?call_low_level_init (?C_STARTUP) stack 1 = 00000000 ( 00000002 ) ------------------------------------------------------------------------- Понятно, что строку CODE и все что далее до строки "--------------------------------" можно пропустить, а вот NEAR_N или ABSOLUTE - заслуживают внимания - получим ИМЯ, РАЗМЕР, и НАЧАЛЬНЫЙ адрес переменной, далее по имени в *.lst найдем описание структуры, парсим и ее; далее обычная прогрммная эквилибристика => делаем файл описания переменных который будет читать терминальная программа по каждому обновлению ну а далее формирование списка и размеров смежных областей RAM(EEPROM) для чтения и их размер; далее запросы к контроллеру и далее форматный вывод на экран прочитанного из контроллера на экран.
  19. Именно так и предполагается. Вообще то, если хорошо поковырять файлы *.map и *.lst , то данные о переменных можно вытащить (из *.map - имена и начальные адреса, а из *.lst - их типы и структуры) правда парсинг будет достаточно сложный
  20. В EXTRA OPTION Linker-a ставлю: -Oelf,as=my_Proj.elf при линковке получаю: Fatal Error[e92]: Cannot use the 'elf' output format with this cpu что, как я понимаю, означает что данный формат для такого типа CPU не поддерживается (у меня mega128)
  21. Ну и что с того что на экран можно будет вызвать адреса переменных. Далее лазить по RAM в разные места? Хорошо если 1-2 переменных типа char, а обычно их больше. Идея то такая: на экране список переменных с их форматом, отметил галочками интеремующие - получил список с текущими значениями, нажал кнопку "Обновить" новые текущие значения. Правда с Cof файлом оказались проблемы: не хочет IAR 4.20 генерить его для ATmega процессоров а UBROF 8 пака не нащел описание формата. Так что пока идея в полном развале.
  22. Спасибо за совет, но мне как раз нужно обойтись без дополнительных средств. У меня bootLoader объединен с просмоторщиком ресурсов контроллера и все это завязано на внешний терминал PC. Все это работает в фоне основной программы. Поэтому фокус с coff файлом наиболее подходит.
  23. Спасибо, буду ковырять Coff формат.
  24. Да sign и unsign надо различать, да и форма массивов ....... А формат cof где есть открытый
×
×
  • Создать...