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

1921

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

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

  • Посещение

Репутация

0 Обычный

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

  • Звание
    Участник
    Участник

Посетители профиля

1 162 просмотра профиля
  1. EWARM 8.22 simulator

    Товарищи разработчики и сочувствующие! Помогите бедному крестьянину! Проблема в следующем. Надо погонять lpc824, для этого поставил вот этот самый ewarm8.22, полечил как положено, приклеил OpenLPC, прописал инклуды и CORE_M0PLUS. Для начала поставил симулятор. ОДНАКО! Не грузит. Пишет следующее: Memory access error. Checking for a code breakpoint outside mapped memory at address 0xcdcdcdcc. Check your memory configuration. Линкер стандартный, не правил, там свои линкеры на каждый чип, адреса памяти вроде соответствуют. По десятому разу проверил все настройки - вроде всё пучком. Кстати, остальные чипы NXP тоже самое. А старый IAR (v5) тот же проект запускает только в путь. Я понимаю, скажете - вот и юзай старый. Вот только там список чипов маловат, нет lpc824. Чё делать-то, а? Не так встал IAR? Или в настройка проекта чего?
  2. Джентльмены, подскажите, кто чем может… Вопросы дилетантские, но всё же. Установил XILINX ISE. Все вопросы пока по схемотехническому редактору. Дрыгаю спартаном-3Е. 1. Как вывести несколько одинаковых микросхем (элементов) на одну шину? Я имею ввиду элементы типа CB16 – счётчики, выходы которых уже сделаны в виде шины. Названия у выходов одинаковые, шина ругается однако. Желательно напрямик, без переходных шин. 2. Я так понял, сигнал с ножек глобальных клоков автоматически проводится через буфер глобальных клоков, и далее – на тактовые входы элементов. А можно эти ноги использовать как GPIO? А как сделать, чтобы линия с ноги глобальных клоков не шла через глобальный буфер клоков? 3. Есть ли глобальный ресет? 4. Когда-то давным-давно сигналы со входов/выходов нужно было обязательно пропускать через IO буферы. В примерах часто этого не делают. Это что, теперь не обязательно?
  3. explorer16

    Кто знает, подскажите! Есть плата explorer16 с процессором pic32 на PIM. Год или два назад я её удачно запускал, причём MPLAB стоял на машине с XP, с присоединённым ICD2. После этого перешёл на ICD3. Пытаюсь запустить, и что же? В MPLAB вообще исчез ICD2 (не подсвечен), зато гордо сияет ICD3. А explorer16 её не хочет и жалобно просит ICD2. Теперь вопрос: как решить эту проблему? Как сделать откат на ICD2 или перешить плату, чтобы она понимала ICD3? Переустановка драйверов USB эту проблему не решает.
  4. stm32f4

    Значит, так. Подключен файл stm32f40x.h, из него подключается core_cm4.h. Если я ручками прописываю какую-либо переменную с префиксом __IO, то никакого возмущения не наблюдаю, т.е. очевидно файл подключен. Что-нибудь с путями напутано в проекте? Если переношу объявление структуры (регистры USB) в main.c, то воспринимает на ура, а на объявление в файле usb_regs.h ругается. К чему бы это?
  5. stm32f4

    Сейчас посмотрю!
  6. stm32f4

    Товарищи, помогите кто чем может. Мечтаю запустить USB-FS на STM32F4. Переписываю куски из тестового проекта в свой. Там всё работает. А у меня не хочет. Суть проблемы: в файле usb_regs.h регистры определены в таком виде: __IO uint32_t GOTGCTL; /* USB_OTG Control and Status Register 000h*/ и т.д. У меня компилятор (IAR) ругается: identifier "__IO" is undefined Вроде (?) настройки проекта такие же. И в хелпах про эту директиву __IO ничего не нашёл. Что делать-то, а?
  7. прерывание UART stm32f4

    Подскажите, пожалуйста. Написал простую строку: //------------------------ while(1); //--------------------- void USART3_IRQHandler(void) { if(USART_GetITStatus(USART3, USART_IT_TXE) != RESET) { USART_SendData(USART3,0x55); } } Прерывания разрешил и сконфигурировал. Виснет. Если после посылки сделать задержку - работает. Причём после повисания обнуляются все регистры USARTa. По идее, переполнений быть не должно, статус-то анализируется. Я прям в затруднении... Да, ядро разогнано до 168, периферия до 84.
  8. Никакого. Включить - это как? Простите за тупой вопрос? Прописать его в обработчике прерываний как reset? Как его заставить выполняться до main? Я вообще-то думал, что IAR без спроса ищет этот system и подключает его. Выходит, не так. Может, подскажете, как грамотно организовать стартап? Ну не знаю я ARMов, но уж больно привлекает их периферия и быстродействие! Эт я видел в дизассемблере. А вот настроек HSE не видел. Значит, не нашёл он этот system, видимо, его где-то прописать надо? Так. Прикрутил штатный стартап - насколько понял, это как раз обработчик ресета со ссылкой на этот самый систем. Я только одного не понял - это что, вовсе не обязательно прикручивать эти примочки? Сдаётся мне, ручками побыстрее было бы.
  9. Не, ну разумеется я его приаттачил, и хедер его тоже. А вот в дизассемблере не увидел ничего, кроме ресетов. И регистры RCC-совские нулёвые, когда доходишь до main.
  10. Корифеи и Гуру, не бейте сильно! Поясните начинающему. Я правильно понимаю, что файл system_stm32f40x.c запускается автоматически до запуска main.c? Или нет? Где этот файл лежит по умолчанию? В смысле, я перенёс его в каталог проекта, но IAR его не цепляет. И как всё-таки он должен правильно называться: system_stm32f40x.c или system_stm32f4xx.c (в примерах встречается и так, и так). Я понимаю так, что его нужно править под свои потребности (я имею ввиду систему тактирования), так где править-то? наверное, можно и без него, ручками, но я посмотрел - там вроде все основные инициализации есть, чего же ещё. На советы читать первоисточники - отвечаю: да читаю я их, читаю. Да только не всё сразу понимаю. Не позволяет совесть ответить - хотя бы ткните носом в первоисточник, шоб я знал. А? С уважением - новичок.
  11. Спасибо, джентльмены! Как сам не нашёл - не понимаю! Что бы я без вас делал!
  12. документация по stm32f405

    Уважаемые товарищи, укажите, если можно, где лежит подробная информация на stm32f405. В даташите только общие данные, а каких-нибудь юзер мануалов или программерз мануалов я так и не нашёл. Я имею ввиду, документ с подробным описанием узлов и регистров. Уж обыскал сайт STM - а нету... :(
  13. C32 вопросы дилетанта

    Помогите убогому кто чем может... Набросал тут списочек вопросиков, рою, конечно, параллельно, но языками владею слабо. 1. Как сделать переменную в ОЗУ не инициализируемую (__no_init) 2. Как разместить константу по заданному адресу 3. Как разместить переменную по заданному адресу. 4. Как выделить секцию (блок) в flash памяти, чтобы поместить туда что-то, и чтобы линкер туда больше не пытался ничего засунуть. 5. Как всё-таки правильно установить приоритеты прерываний? У меня получается только вручную - запись в IPC, всё шаманство с записями типа ipl7 не даёт ничего. Может, дело в симуляторе или бесплатном С32? 6. Почему при отработке не сбрасывается автоматически флаг прерывания, и его надо сбрасывать принудительно? Ну прямо ассемблер какой-то? Может, это как-то связано с системами приоритета? 7. Что всё-таки означает ipl7soft - ipl7auto - ipl7srs 8. Почему если написать просто ipl7, то не восстанавливается разрешение локального прерывания на выходе из прерывания 9. Почему программа называется int main(void), а не void main(void) 10. Почему симулятор запросто показывает все неиспользуемые переменные? Потому что он бесплатный и не оптимизирует? 11. Что такое single vector mode и multi vector mode Таких вопросов ещё огого, но, может, для кого ответы очевидны, напишет мне на русском, так, чтобы понял даже я... Спасибо, братья!
  14. ГЫ! Ничего не понял, потыкал, и всё получилось. void myfunc (void) @"BLOCK2", где BLOCK2 - прописанный в линкере сегмент, типа: . . . // ------------------------------------- // Information memory // -Z(CONST)INFO=1800-19FF -Z(CONST)INFOA=1980-19FF -Z(CONST)INFOB=1900-197F -Z(CONST)INFOC=1880-18FF -Z(CONST)INFOD=1800-187F // ------------------------------------- // Low memory 0-0FFFF // // --------------------------- // Code // -Z(CODE)CSTART,ISR_CODE=6000-FF7F // --------------------------- // Constant data // -Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=6000-FF7F // ------------------------------------- // All memory 0-FFFFF // // --------------------------- // Code // -P(CODE)CODE=6000-FF7F,10000-45BFF -Z(CODE)CODE_ID // --------------------------- // Constant data // -Z(CONST)DATA20_C,DATA20_ID=6000-FF7F,10000-45BFF //--------------------------------------- // Our segment 5C00..5FFF 1024 bytes -Z(CODE)BLOCK1=5C00-5DFF -Z(CODE)BLOCK2=5E00-5FFF // ------------------------------------- // Interrupt vectors // -Z(CODE)INTVEC=FF80-FFFF -Z(CODE)RESET=FFFE-FFFF Модифицированный линкер надо подключить в настройках вместо стандартного. При этом чётко кидает функцию по адресу 5E00, и больше ничего туда не пишет. Вах, как харашо! У меня вопрос снят.
×
×
  • Создать...