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

vesago

Свой
  • Постов

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

  • Посещение

Сообщения, опубликованные vesago


  1. Пользую для отладки поделий на m48/88/168 платформе. У меня аппарат с ошибкой, но я руками его не лапаю ну и не перепаивал пока. Кстати они идут без корпуса - просто плата в гламурной коробочке. Я его в этой коробочке и держу - только кабеля торчат. Вещь крайне полезная и своих денег целиком оправдывает. Покупал в эфо по акции через местных.

  2. Я кстати для ARM7 писал вначале под кейлом. Потом познакомился с яром, когда начал пользовать авр и мсп430. Сейчас портировал проект для ARM7 тоже в яр. Имхо больше он мне по душе. Линкер удобнее, дебаг больше нравится. IDE убогая, да я все равно в сликэдите пишу. Если писанины много в проекте - сильно выручает.

  3. Бывыет. Но не надо обобщать. Чего чего, а проблем со связью у меня с моим древним мтлинком ни разу не было. И кабель у него гавенный и подключен через удлинитель, а все равно пашет как автомат Калашникова. Возможно вы втыкаете в разъем на передней панели PC.

  4. Отправил на почту что имеется. Посмотрите, может поможет. Я портировал проект с кейла в последний яр. С мтлинком проблем не возникло. Наоборот работает намного стабильнеей чем в кейле. С новыми дровами сеггеровскими мой мтлинк не работает. Поэтому я ставлю сначала Setup_JLinkARM_V374i, а сверху накатываю содержимое 3_48b.rar. Ну и в настройках проекта указать корректно пути к вновь установленной RDI.dll. Если прошивка мтлинка древнее 116, то обновите и ее. Просто запускаете экзешник и все. Свежее вроде Дасм уже не делал. Потом пошли прямые клоны джэтлинка. По буту можно джетфлешем записать какую шнягу в начало, чтобы LRC векторов не сходилось или тоже не дает?

  5. Я пользую самый древний мтлинк + самый последний яр. Может быть проблема с рди. Я ставлю обычно 3.74 + накатываю дллины и некоторые эезешники из 3.48. Ну и действительно с программой - активировн внешний или внутренний вачдог, отключается пинселом жтаг, стек проседает или обращение по левым адресам. Плюс проблеммы с таргетом тоже не надо исключать. Для древнего мтлинка у меня последняя прошивка - 1.16.

  6. Наиболее надежная вещь - внешний вочдог. Мало знаю людей, которые используют внутренний. Хотя бы потому, что его можно отключить из софта, или даже не включить...

    +1. Я в кончном итоге отказался от внутреннего и пользую внешний.

  7. Есть термоядерная утилита SRecord. Тут обсуждалась. Она позволяет с прошивкой все что угодно сделать. Я через нее собрал обновление загрузчика из приложения с контролем CRC32. Пример скрипта:

    @echo off
    
    @echo 1.PATCH BOOT SIGNATURE 0x14
    srec_cat.exe bootloader.hex --Intel --Output bootloader_tmp.bin --Binary
    patch_signature.exe bootloader_tmp.bin    
    del bootloader.hex
    srec_cat.exe bootloader_tmp.bin --Binary --Output bootloader.hex --Intel
    
    @echo 2.GENERATE BOOT CRC32 AND PASTE BEGIN
    srec_cat.exe bootloader.hex --Intel --offset 0x04 --l-e-crc32 --min bootloader.hex --Intel --Output bootloader_and_crc32.hex --Intel
    
    @echo 3.ADD BOOT LEN
    srec_cat.exe bootloader_and_crc32.hex --Intel --offset 0x04 --b-e-length --min bootloader.hex --Intel --Output bootloader_and_len_and_crc32.hex --Intel
    
    @echo 4.ADD BOOT TO APP AND OUTPUT skat_app.hex
    srec_cat.exe bootloader_and_len_and_crc32.hex --Intel --offset 0x00006000 skat.hex --Intel --Output skat_app.hex --Intel
    
    @echo 5.OUTPUT skat_app.bin
    srec_cat.exe skat_app.hex --Intel --fill 0xFF 0x00 0x8008 --Output skat_app.bin --Binary
    
    move skat_app.bin release
    move skat_app.hex release
    
    move bootloader_and_crc32.hex tmp
    move bootloader_and_len_and_crc32.hex tmp
    move bootloader_tmp.bin tmp
    
    pause

  8. Попробовать на период прошивки меги глушить TMS. Допустим ресет на нем активировать. Еще может мк2 отслеживает SCK и в случае мусора прекращает сеанс => через диод подать, чтобы просадку отсеять, а до диода подтянуть к питанию.

  9. Логично. Странно только, что в основном работает превосходно. Частота сравнительно не большая. Основной питатель у меня периодически просаживается на несколько вольт и это не влияет на работу. Микросхемы близко к процу и ничего лишнего рядом не проходит с шинами. На этой же шине еще чипы срам. С ними проблем нет. В общем хз. Разве что пользую пока LPC 0 ревизии. Может у него что не так в EMC. Пока буду ставить B ревизию памяти или AMD.

  10. В общем упомянутая выше проблема вылечилась только перепайкой памяти на AT49BV322A. Получается что 322D чем-то отличается, хотя по параметрам якобы только в плане улучшения. Но не может же атмел выпускать лажу. Возможно я как-то не корректно пристыковал к LPC2214. Может подтяжки нужны по шинам или последовательно резаки?

  11. Ту проблему я давно решил. Оказались кривые руки - пытался писать данные в нестертые ячейки. Поэтому и клинило память. Разобрался устранил - как часы работает. Но сделали новый дизайн, переразвели красиво плату и появилась новая проблема. В старой версии ставили AT49BV322A в новой стали ставить AT49BV322D. Она дешевле и вроде быстрее трется. Суть проблемы в следующем - систематически раз в сутки, почему-то после дня рабочего, память отказывает. Когда с нее читаешь дамп, вместо FFFF допустим FFF8 или FFF4. И кое-что потерто. И ничего не помогает поднять. Только снятие/восстановление питания. Днем работает стабильно. На софт грешить трудно - в старой версии софт косметически отличается - входы/выходы некоторые. Что может вызывать такой эффект? Может проблема в том, что LPC2214 питается от одного 3.3В а память от другого и они (питатели) на разных платах? Нужно ли память ресетить каждый раз после стирания/записи блока данных?

  12. В тулзах\конфига тулз яра создаете новый и в нем прописываете запуск программирования через командную строку в качестве аргумента с корректными путями. Типа:

    Stk500.exe -ms -cCOM4 -I250kHz -dATmega16 -e -ifdisplay.hex -pf -vf -fC73F -FC73F -lFC -LFC

    Можно настроить горячие клавиши. Точнее не скажу - не помню. Раньше пользовал сейчас просто запускаю батник. Поэксперементируете. Студию можно вообще не ставить - скачать с атмла авркоммандлайнтулз. Он поставит необходимое окружение.

  13. Хочу разобраться с ремапом основного приложения в LPC2214. Как я понял я должен таким образом получить хекс, чтобы вектора (64 байт) расположены были с адреса 0, а ресет хэндлер и остальное с адреса допустим (0x2000 + 0x40). Я из хекса вырежу первые 64 байта с весторами и запихаю их с адреса 0x2000. Загрузчик скопирует вектора в раму 0x40000000 и дальше передаст управление. Правильна ли моя идея? Проект у меня в карме - не могу сместить ресет и все тело программы в первый сектор флеши. Если кто знает как - подскажите, пожалуйста.

  14. Я думал, что если начало прошивки сконфигурировано с адреса 0x2000, то и вектора там же. А как же она работает в обычном режиме? Там же сидит загрузчик как отдельное приложение. Получается для ремапа, мне нужно в начало рамы копирнуть область векторов с 0 флеши и задать ремап?

  15. Прошу совета по сабжу. Я использую LPC2214. C 0 по 0x1FFF расположен загрузчик, с 0x2000 приложение. Все работате отлично. Решил я написать приложение, которое будет обновлять загрузчик. То есть образ нового загрузчика расположен по адресу 0x6000. После заливки, это приложение через IAP должно стереть сектор где расположен старый загрузчик, т.е. сектор 0 и скопировать туда образ нового загрузчика с адреса 0x6000. При отладке я пробовал копировать в область с адресом 0x8000 - проблем не было. В боевом варианте после стирания сектора 0 система зависает. Если посмотреть память флэш меджиком, видно что сектор 0 стерт. Почему система отваливается, ума не приложу. Вроде все сконфигурировано правильно - в опциях кейла и стартапе задал, что прошивка начинается с адреса 0x2000. Может есть какие-то особенности IAP - типа клинит соседний сектор? JTAG смотрел - показалось, что коллапс наступает после восстановления прерываний.

  16. Так на нее же прекрасная дока есть)

    Есть, да как-то не прокатывает - вываливаются ошибки. Может не понимаю чего. Мне бы пример скрипта глянуть.

    Вот вроде начало получаться. Она как я понял любит хекс на входе.

    Вот так склеил:

    srec_cat.exe bootloader.hex --Intel --offset 0x00 skat.hex --Intel --Output skat_app.bin --Binary

    Сейчас хочу еще контрольную сумму добавить и длинну встроенного образа бута. Не получается только промежутки FF залить. Ядерная утилита. Сделал скрипт, который к прошивке подшивает бут с контрольной суммой и длинной:

    srec_cat.exe bootloader.hex --Intel --offset 0x04 --l-e-crc32 --min bootloader.hex --Intel --Output bootloader_and_crc32.hex --Intel
    
    srec_cat.exe bootloader_and_crc32.hex --Intel --offset 0x04 --b-e-length --min bootloader.hex --Intel --Output bootloader_and_len_and_crc32.hex --Intel
    
    srec_cat.exe bootloader_and_len_and_crc32.hex --Intel --offset 0x0003DFF8 skat.hex --Intel --o skat_app.hex --Intel
    
    srec_cat.exe skat_app.hex --Intel --fill 0xFF 0x0 0x40000 --o skat_app.bin --Binary
    
    pause

×
×
  • Создать...