Jump to content

    

smk

Свой
  • Content Count

    2377
  • Joined

  • Last visited

Community Reputation

0 Обычный

About smk

  • Rank
    Гуру
  • Birthday 08/20/1971

Контакты

  • Сайт
    Array
  • ICQ
    Array

Информация

  • Город
    Array

Recent Profile Visitors

7008 profile views
  1. посмотрел. У меня кейл. Якобы автоматом выравнивать должно. Но когда включаю кеш программа уходит в ошибку. поправил
  2. Как это сделать? тут еще такое есть: /* DMA TX Descriptor */ typedef struct tx_desc { uint32_t volatile CtrlStat; uint32_t Size; uint8_t *Addr; struct tx_desc *Next; #if ((EMAC_CHECKSUM_OFFLOAD != 0) || (EMAC_TIME_STAMP != 0)) uint32_t Reserved[2]; uint32_t TimeLo; uint32_t TimeHi; #endif } TX_Desc; /* DMA RX Descriptor */ typedef struct rx_desc { uint32_t volatile Stat; uint32_t Ctrl; uint8_t const *Addr; struct rx_desc *Next; #if ((EMAC_CHECKSUM_OFFLOAD != 0) || (EMAC_TIME_STAMP != 0)) uint32_t ExtStat; uint32_t Reserved[1]; uint32_t TimeLo; uint32_t TimeHi; #endif } RX_Desc;
  3. /* Ethernet DMA Descriptor/Buffer memory */ static struct { RX_Desc rx[NUM_RX_BUF]; TX_Desc tx[NUM_TX_BUF]; uint32_t rx_buf [NUM_RX_BUF][ETH_BUF_SIZE>>2]; uint32_t tx_buf [NUM_TX_BUF][ETH_BUF_SIZE>>2]; } Desc __MEMORY_AT(EMAC_DMA_MEMORY_ADDR); ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x08000000 0x00080000 { ; load region size_region ER_IROM1 0x08000000 0x00080000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) .ANY (+XO) } RW_IRAM1 0x20010000 0x00040000 { ; RW data .ANY (+RW +ZI) } RW_IRAM2 0x20000000 0x00010000 { .ANY (+RW +ZI) } } файл EMAC_STM32F7xx.c
  4. Не могу устранить Warning: L6918W: Execution region RW_IRAM2 placed at 0x20000000 needs padding to ensure alignment 4 of emac_stm32f7xx.o(.bss.ARM.__at_0x2000C000). Подскажите как подойти к вопросу. Спасибо. Desc 0x2000c000 Data 9412 emac_stm32f7xx.o(.bss.ARM.__at_0x2000C000) [Anonymous Symbol] 0x2000c000 Section 0 emac_stm32f7xx.o(.bss.ARM.__at_0x2000C000)
  5. Смотрите там где правило Clearance.
  6. При создании композитного слоя пропадает полигон с заливкой. На гербере полигон есть. Altium Designer 20. Что можно предпринять? Спасибо.
  7. С семафорами вышла проблема. Если в отладчиком подключаюсь к СМ7, а СМ4 стартует без отладчика или запускается первым, то все хорошо. Если без отладчика подать питание, то обмена между ядрами нет. Не понятно как толком эти семафоры приводить в нужное состояние при старте. Кто подскажет как это организовывается? И хотелось бы раскрыть вопрос про MDMA и BDMA. MDMA пробовал настраивать, но не работает. Ни ошибок ни передачи. Пробовал BDMA. Из RAM СМ7 в RAM СМ7 происходит ошибка передачи. Из RAM СМ7 в SRAM4 (0х38000000) ортрабатывает без ошибки. Только по 0х38000000 данных не наблюдается. Вообще без изменений. Суть вопроса - какими средствами и как наладить надежный обмен между ядрами? Спасибо.
  8. smk

    Добрый день! Можем в начале попробовать по удаленке в основном. Потом будет видно. спасибо.

  9. Заработало.
  10. Имея в распоряжении справочник Стэля и метод научного тыка потихоньку продвигаюсь.
  11. Передрал хал. Вообще ничего не работает. даже прерывания не включены.
  12. Тут еще вопрос есть. Если СМ7 положил результат вычислений в некоторый массив, то как СМ4 его забрать? Получается нужно чтобы массив всегда был по фиксированному адресу, который сообщить СМ7? Или как это правильно?
  13. Смотрел уже. У меня вот вопрос. Пишут "каждый семафор содержит два регистра". Понятно. Один комплект регистров вижу. Где второй? С прерываниями та-же история.
  14. А можно в кратце технологию? Методом тыка получилось от см4 сгенерить прерывание для см7, а наоборот не получается. где куб там хал. Мне без него желательно.
  15. Ядро СМ7 занимается обсчетом. Когда обсчет закончен и есть свежие данные нужно сгенерировать прерывание ядру СМ4. Как это сделать с помощью семафоров? Сколько ни читал - толком не понятно. Где чей семафор? Почему обработчиков два, а вектор прерывание в NVIC один? Подскажите, кто в курсе как это делается без HAL. Спасибо.