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

Vitaliy_ARM

Свой
  • Постов

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

  • Посещение

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


  1. Я думаю надо смотреть с самого начала что происходит!

    Отключить питание подтянуть ресет к земле и вход в бутлоадер тоже. Включить питание и не отпуская ресет попосылать посмотреть что происходит и на TX и на RX. Потом снять reset попосылать терминалом ? посмотреть что просиходит...

     

    Все заработало! Спасибо за совет. Собственно дело было так. Подтянул ножку P2.10 к земле. Сбросил чип. После сброса подал ?, процессор откликнулся Sinhronized. Оказалось, что был заблокирован J-TAG. После полного стирания все восстановилось. Потом проверил плату, оказалось что не исправен транзистор, который управляет подтяжкой P2.10 при программировании. После замены заработало программирование на плате.

    Всем откликнувшимся большое спасибо! :1111493779:

  2. Если проц молчит. Откуда тогда брались данные в логе, и эхо на "?" ?

     

    Проц замолчал после того, как я отрубил эхо командой A0<CR><LF>. И больше я ничего от него не могу получить. Ни на какие команды он не отвечает. Скорость обмена была 4800 при выключении эха. Я и скоростя менял и на этой пробовал, результат не меняется. J-TAG вообще не видит проц. ( Сегодня мне сообщили, что еще у одного человека так же умер проц на плате MCB2300 из-за того, что он залил ему прошивку, предназначнную не для него. Так же загрузчик не отвечает. Это к тому, что не у одного меня такая проблема, может быть загрузчик при каких-то условиях может слететь). Пока все указывает на то, что проблема в самом процессоре.

  3. Странно. На ПК СОМ порт работает, проверил на другом устройстве. На работу принес и проверил осциллографом сигналы, при подаче ? на входе RX процессора просматривается четкий сигнал. На выходе процессора тишина. В общем на всякий случай заказал пару новых. Продолжаю разбираться

  4. Обычно - он на какой-то скорости по умолчанию стоит и эхо выплевывает. Другое дело, что на '?' должен-был синхронизироваться, но это если c '?' все начинается, а не передается в каком-то потоке. Ищите проблему пока за пределами bootloader-а - исправность кабеля, который выдернули на лету, соответственно живость приемопередатчиков, на какой скорости проводится эксперимент с терминалом, теминал, случаем не запихивает для начала тупо строчку инициализации модема....

     

    Кабель полностью исправен, неоднократно проверял. Плата SK-LPC2378 rev.B. Пробовал программировать FlashMagic'ом (версия 4.17.273). Постоянно снимал лог программой HDD serial monitor. Ставил галку Set Code Read Prot. Можно ли запретить чтение так, что загрузчик не будет отвечать?

  5. А вы попробуйте обычным терминалом послать

    ?

    эха не должно быть, чип должен ответить

    Synchronized

     

    ну перед этим конечно надо подтянуть ножук входа в бутлоадер и проресетить чип.

     

    Подал ?, получил эхо ?. На другие команды не отвечает совсем. Потом попробовал отключить эхо командой:

    A0<CR><LF>

    Эхо отключилось. Потом попытался включить эхо. Эхо нет! И теперь вообще никаких признаков жизни нет :07:

  6. так судя по логу у вас просто эхо возвращается

     

    Не совсем эхо. Как-то по неаккуратности уже такое было. Но все вылечелось стиранием J-Tag'ом сразу после резета. А теперь совсем умер. Так что, на помойку? :07:

  7. В общем при программировании я зацепил кабель СОМ порта и выдернул его из платы. После чего при его перестал находить Wiggler (H-Jtag). При попытке стереть FlashMagic, выдаются ошибки:

     

    Failed to read the device signature, .... Do you want to continue?

    Жму ОК.

    Operation Failed;

    Снял лог (прилагаю). Как видно, связь с процессором устанавливается.

    Однако связь устанавливается даже если снять перемычку с порта P2.10. Видимо постоянно загружается загрузчик и висит.

     

    Может кто знает, как его можно вылечить или можно сразу новый покупать???

    :help:

    ISPlog.txt

  8. Работаете??? А как это без CS и прочего удалось-то!!!!

     

    Просто у меня не память висит, а CPLD. Я его не использую совсем. У меня плисина генерирует внешнее прерывание, когда она уже подготовила данные. Пардон, этот кусок кода был взят из тестовой программы для проверки работоспособности CPLD.

  9. Работаю с LPC2468. Инициализация вот:

     

    //------------------------------------------------------------------------------
    //* Инициализация контроллера SRAM
    void SramInit(void)
    {  
      DWORD dummy = dummy;
      //*************************************************************************
      //* Инициализация EMC and SRAM
      //*************************************************************************
      //  SCS     |= 0x00000002;    /* Reset EMC */ 
      EMC_CTRL = 0x00000003;        /* Enable Address mirror*/
      PCONP   |= 0x00000800;        /* Turn On EMC PCLK */
      // Конфигурация портов ввода/вывода
      // P3.0 - P3.7 => D0 - D7
      // P4.0 - P4.15 => A0 - A15
      // P4.24 = ~OE
      // P4.25 = ~WE 
      // P4.30 = CS0
      // P4.31 = CS1
      //* шина данных подключена полностью
      PINSEL6  = 0x55555555;
      PINSEL7  = 0x55555555;
      //* шина адреса 12 разрадная  
      PINSEL8  = 0x00555555; 
      PINSEL9  = 0x00010000;
      
      EMC_CONFIG        = 0;    // Litle indian
      // Шина 32 бит
      // POR включен
      // Чип селект по высокому уровню
      // Extended wait disabled
      // Write bufer disabled
      // Write not protected
      EMC_STA_CFG0      = (1<<6)|(1<<3)|(1<<1); // Async page mode enabled (page length four).
      delayMs(100);
      EMC_STA_WAITWEN0  = 0;
      EMC_STA_WAITOEN0  = 0;
      EMC_STA_WAITRD0   = 0;
      EMC_STA_WAITPAGE0 = 0;
      EMC_STA_WAITWR0   = 0;
      EMC_STA_WAITTURN0 = 0xF;
      delayMs(100);    
      // Шина 32 бит
      // POR включен
      // Чип селект по высокому уровню
      // Extended wait disabled
      // Write bufer disabled
      // Write not protected
      EMC_STA_CFG1        = (1<<6)|(1<<3)|(1<<1);
      delayMs(100);
      EMC_STA_WAITWEN1  = 0;  
      EMC_STA_WAITOEN1  = 0;
      EMC_STA_WAITRD1   = 0;
      EMC_STA_WAITPAGE1 = 0;
      EMC_STA_WAITWR1   = 0;
      EMC_STA_WAITTURN1 = 0xF;
      delayMs(100);
      return;
    }

     

    Откорректируйте для 8 битной шины PINSEL и EMC_STA_CFG регистры по даташиту и должно завестись.

  10. Честно сказать для коммуникации LPC24xx да.

    но нужен SDRAM & DMA так как надо обработать маленькую картинку BMP. Без кеша в разумное время про это можно забыть.

    Да и ставить камень в серую пока он в прелюминейт, не очень разумно,

    даже глупо. Очень большой риск.

     

    А почему вы не хотите применять ARM9 или BlackFin?

     

    По поводу LPC2468 в корпусе LPQP208 и контроллера внешней памяти, у меня CPLD на нем висит в с 32 битной шиной данных - вроде бы работает нормально, но такой идеотской распиновки SDRAM контроллера я еще не встречал, умудрились через весь кристал его развести. Наверное очень торопились бедняги

  11. В проекте используется lpc2378. Ни ETHERNET ни USB не используется.

    Возможно ли использовать ETHERNET RAM (16 kB) и USB RAM (8 KB) как обычную ОЗУ?

    Если да, то как это сделать?

    Для разработки используется keil + GCC, как я понимаю надо править LinkerScript.ld, но я не понял как указать для секции DATA два участка памяти. Какие будут мысли по этому поводу?

     

    Использовать можно, только GPDMA не имеет доступа к Ethernet RAM. Кейлом не пользуюсь. Самый простой вариант, если нужно там размещать большие буфера, то можно сделать вот так, и контроллировать все в ручную:

     

    int main()

    {

    DWORD *pBuf = 0x7FE00000; // указатель на буфер в памяти Ethernet

    DWORD Data;

     

    *pBuf = 0x01020304;

     

    Data = *pBuf; // Data = 0x01020304

    }

  12. К сожалению я не знаю готового решения RDI <-> GDBserver

    Но у IAR 5.xx уже есть в конфигурации GDB server, так что 5ый IAR можно подключить прямо к openocd

     

    Недавно наткнулся на ссылку с конфигурацией OpenOCD под вашу плату

    http://www.siwawi.arubi.uni-kl.de/avr_proj...rtex/index.html

     

    Там еще есть описание, как этот gdb под линуксом использовать.

     

    Может выложите свою версию OpenOCD сюда? ;)

  13. OpenOCD запускается как GDB сервер - то есть висит на локалхосте - для его использования надо выбрать в опциях проэкта в свойствах дебаггера GDB server а в свойствах самого GDB сервера указать

    адрес

    127.0.0.1,2331

    где 2331 - порт на котором запускается OpenOCD.

    все это касается ИАРа 5.11 который поддерживает GDB

     

    Понял, нашел, спасибо! Тоже заказал себе STM32F103VB. Придет, попробую FTDI J-TAG и J-Link, заодно и сравню.

  14. Победил!!! Так как адрес у функции 32-разрядный, преобразовал его в DWORD, а при вызове преобразую обратно. Вот кусок кода:

    void start(void)
    {  
    }
    
    #pragma location = "CODE"
    __root const dword StartPointer = (dword)&start;
    
    void (* fptr)();
    
    void main(void)
    {
      fptr = (void(*)())StartPointer;
      TargetInit();
      fptr();
      while(1);
    }

     

    При вызове fptr(), вызывается start();

  15. Не стал плодить тем. Пишу в похожую.

     

    void (* fptr)();

     

    ну и например

     

    void f1 (void) {

    //Do something

    }

     

    Инициализация делается так:

    fptr = &f1;

     

    Вызывается также как обычная функция:

    fptr();

     

    Возникла необходимость делать абдейты на процессоре LPC2378 на IAR.

    Для этого был сделан загрузчик, который находится в неперезаписываемой области Flash.

    Кроме перепрограммирования оставшейся Flash он еще должен уметь вызывать пару функций из

    перезаписываемой области. Для этого по фиксированному адресу в перезаписываемой Flash должны находиться указатели на функции, которые могут находиться в коде где угодно

    (функции типа void func(void)).

     

    Прочитал http://electronix.ru/forum/index.php?showt...amp;mode=linear

    Попробовал разместить void f1 (void) в памяти.

     

    Просто вот так работает

     

    void start(void)

    void (* fptr)() = &start;

     

    А вот так нет.

     

    #pragma location = "MYROM"

    __root const void (* fptr)() = &start;

     

    Помогите пожалуйста победить эту штуку :05:

  16. А что платное, в чем подвох то? На сайте Raid7 написано что все тулсы при использовании GNU GCC и использовании STM32 "No software limitation"

     

    А бесплатные j-таги не пробовали прикручивать?

  17. Это твой GNU gcc-frendly проект был, или в комплекте шел? Если твой - выложишь? Надо с чего-то начинать когда-нибудь, а то пока все доку читаю.

     

    У меня есть куча примеров для платы, которую я выкладывал и не только.

    ARM_based_32_bit_MCU_STM32F101xx_and_STM32F103xx_firmware_library.zip

    STM32F10xxx_in_application_programming_using_the_USART.zip

    STM32F10xxx_USB_developer_kit.zip

  18. Если работаете с версиями 4.42 или 5.10 продукта, то вот что по этому поводу пишет производитель:

     

    Патч прилагаю.downgrade_dlls.zip

     

    Попробовал заменить файлы. Все осталось по-прежнему. Может просто конфликтуют драйвера именно с этим чипом, типа тоже его еще не успели в базу внести. Мда, вот проблема. :05:

  19. Не знаю, как на Моссковской, но если, как на остальных, то собствено семейство было только обозначено и соответственно в документе по ссылке о нем практически ничего нет.

     

    Там немного описана переферия (стр 28) и место, которое он должен занимать на рынке (словом информация для продавцов). Флеши и RAM обещается явно по-больше, чем сейчас у ST. Модуль Ethernet MAC наверняка будет от LPC23xx/24xx с DMA. Я был на этой конференции. Представитель NXP утверждал, что эта серия ориентирована на замену 8 и 16 битных МК при той же стоимости, производительности, привосходящей ARM7 и низком энергопотреблении. Больше всего "хвалили" эту архитектуру STMicroelectronix. Посмотрим, что получится у NXP :05:

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