Jump to content

    

romas2010

Участник
  • Content Count

    66
  • Joined

  • Last visited

Community Reputation

0 Обычный

About romas2010

  • Rank
    Участник

Recent Profile Visitors

833 profile views
  1. Добрый день! запустил сетевые службы, используя библиотеку Keil Middleware. Работает, UDP-коллбеки вызываются, TCP+FTP отлично. Но это на первый взгляд. Столкнулся с такой петрушкой- как только к сети подключались IP-камеры, FTP глючит. Ну наверное теряется пакеты. Поступил так- TCP в проекте отключил,написал на билдере "спамер" по UDP, в проекте подключил UDP, в коллбеке тупо считаю, сколько пакетов принялось, в вайршарке мне показывает сколько отправилось. В CMSISовском EMAC_STM32F4xx.c в функции ReadFrame тоже поставил счетчик принятых пакетов. В итоге на уровне драйвера потерь потери пакетов нет,вайршарковский счетчик и счетчик в ReadFrame совпадали, а в коллбеке счетчик стабильно был меньше, причем так сумасшедше меньше, на 20-25%. Причем не помогло ни увеличение количества приемных дескрипторов, ни увеличения Memory pool для библиотеки. Сталкивался ли кто с таким и какие меры приняли?
  2. вставил в проект файл С++. Определил класс в hpp файле, реализация методов в срр файле. Все отлично компилируется, но есть нюанс- компилятор не генерирует код на блоках try/catch . опция --exception добавлена. Как быть?
  3. stm32f4+adc+dma+tim

    У меня получалось так 1) перед каждым новым преобразованием я включаю бит ADC.CR2.DMA=1, конфигурация DMA для АЦП,запуск таймера 2) преобразовалось по флагу DMA_streamx.TCIF-> стоп таймер, ADC.CR2.DMA=0 то есть бит ADC.CR2.DMA переключать необходимо
  4. Keil 5.23

    Цитата(UniSoft @ Apr 4 2018, 19:25) ...А проблема вероятно в неправильном вызове. Спасибо.Согласен...действительно, единицу к адресу вызова надо прибавлять... Тему считаю закрытой
  5. Keil 5.23

    Коллеги, приветствую!! Вопрос такой - как в кейле сделать чтобы константный массив представлялся не данными, а кодом то есть например Код const user_code[]={0x01,0xb5} дизассемблировалось в кейле на как DCW 0xb501 , а как push{r0,lr} Дело в том, что у меня имеется бинарный файл с неким набором процедур, которые вызываются из моего проекта. Я знаю как адреса размещения этих функций, так и их семантику..При отладке в кейле вызовы этих процедур естественно приводят к HardFault, так как встречается директива DCW, а не ассемблерная инструкция.
  6. Keil 5.23 ошибка L6971E

    Цитата(smk @ May 18 2017, 10:13) Здравствуйте! Платка STM32F746-discovery. Подключил GUIBuilder, создал проект по кейловскому хелпу. Получил вот такую ошибку. Никогда раньше не сталкивался с таким. Прошу подсказать что это значит и как лечится? Спасибо. Код.\Objects\STM32F746NGH6-DISCOVERY.axf: Error: L6971E: gui_x_rte.o(.data) type RW incompatible with lcdconf.o(.ARM.__AT_0x20000000) type ZI in er RW_IRAM2. Компилятор Keil не разрешает размещать данные в ОЗУ таким образом через __attribute,типа char lcdconf[20] __attribute(at(0x20000000)))..... видимо прихоть его разработчиков...Обхожу данный нюанс при помощи ассемблера Код               AREA   |.ARM.__AT_0x2000000|,DATA,READWRITE                                   EXPORT lcdconf lcdconf     space 20 в h-файле прописываете Кодextern char lcdconf[20];
  7. Keil 4.50

    Цитата(toweroff @ Mar 29 2012, 19:12) не получается В списке шрифтов киррилического нет. Редактор русские буквы отображает, но сам их написать не может Куда копнуть? Ребят, ваши советы не подействовали,поэтому пришел к следующему:объявляю в программе следующие 3 строки const char button_not_pressed[]= #include "1.txt" ; содержимое файла 1.txt "Кнопка не нажата" Ну вот как-то так вот
  8. Cortex-M7 кол-во циклов на инструкцию

    По хорошему надо бы ввести в архитектуру банки регистров, как в MIPS...тогда бы переключение контекста в многозадачности свелось бы к простому переключению нужного банка...все остальное-игрулечки-бирюлечки
  9. STM32 SDIO в режиме опроса без SPL + FatFs

    Цитата(jcxz @ Apr 24 2017, 16:13) Зачем? Повесить на SPI и CS-ов - вагон без всяких open drain. Тоже склоняюсь к этому мнению....Хоть и некоторым образом некошерно,но надежно...спасибо
  10. STM32 SDIO в режиме опроса без SPL + FatFs

    Всем доброго дня!! Народ, делал ли кто нибудь подключение нескольких SD-карт на одну шину? Если да,то можно ли ногу CMD в контроллере SDIO STM32 сконфигурировать как OPEN_DRAIN (по типу I2C) или все-таки надо ставить внешний демультиплексор для "chip select"? ответы в стиле "возьми SSD+cortex A7" неприемлемы из-за технико-финансовых ограничений проекта...проект-типа многоканальный аудиорегистратор с хранением фраз в течении года
  11. Цитата(KnightIgor @ Feb 27 2017, 16:25) Привет всем, again. 1. Пока остановился на "белых" клавишах малой, первой и второй октав. Всего 21 нота/частота. Частоты получаются: 131,147,165,175,196,220,247,262,294,330,349,392,440,494,523,587,659,698,784,880, 988 .......... Пока так. Займусь FFT для сравнения. Я бы рискнул все-таки через БПФ, но при этом 1) 4096 выборок, соответственно дискрета по частоте 44100/4096 ~=11 Гц ОЗУ надо 32к (4096*(float Re+float Im)) 2) Табличный синус, а косинус-это синус,сдвинутый на pi/2, то есть на cos[x]=sin[x+1024] 3) бабочки БПФ написать на ассемблере с командами сопроцессора 4) DMA I2S не использовать,а вычитывать в каждом прерывании I2S выборку и сразу же кинуть в буфер отсчётов БПФ с бит-реверсией адреса(есть у М4 __rbit() intrinsic)+ экономия ОЗУ Хотя возникает вопрос- а какже на контроктаве и субконтроктаве, там дельта частот очень маленькая?
  12. Утилита для ULINK

    Цитата(Sidoroff @ Dec 23 2016, 16:17) Существует ли утилита для программатора Keil ULINK-2, аналогичная JFlash для Segger J-link? То есть легкая программка только чтобы прошить HEX-файл. нет,не существует...пока через кейл
  13. Опрос более 10 каналов АЦП STM32F103

    Цитата(dimon_rub @ Nov 12 2016, 09:28) Подскажите пожалуйста или укажите направление (примеры будут вообще СУПЕР) как реализовать опрос более 10 каналов АЦП на STM32F103 при том что есть еще I2C, SPI и USART. Опрос должен быть с частотой порядка 100мс. Сейчас начинаю изучать АЦП поэтому прошу снисхождения. Прочитал что есть два типа и т.д. Думаю мне подходит регулярный опрос по таймеру TIM3 и переносом результатов по DMA. Правильно ли я думаю. И еще вопросик. Есть такой analog watchdog при опросе с сравнении по границам. Это для меня конечно наилучший вариант НО как потом узначт в каком канале авария????? Очень элегантно это будет сделать через DMA..необходимо задать в регистре последовательности SQR номера каналов,настроить DMA ну и собственно триггер старта-либо программно,либо по таймеру...в итоге надо будет проверять бит end transfer в DMA для определения окончания преобразования..завтра до работы дойду,вышлю пример расчета переменного напряжения,поступающего на каналы,с использованием БПФ по 256 точкам..Кстати,как мне кажется,analog watchdog штука хорошая,но по большому счету бессмысленная
  14. STM32F4: SPI2 через DMA

    Цитата(zemlemer @ Nov 8 2016, 17:01) Без изменений, к сожалению. 1 ) Попробуйте DMA_PeripheralDataSize = DMA_PeripheralDataSize_Long. как пишут в даташите на STM,к регистрам периферии доступ по слову или по двойному слову 2) в DMA установить бит , отвечающий за flow control "dma".CR.PFCTRL=1;(по идее нужно устанавливать,но не факт) ну само собой буфер данных выровнен по 4 байтной границе
  15. STM32F107+uIP ICMP request

    Цитата(ksv198 @ Dec 19 2013, 20:02) Да!!! Спасибо большое, 4 часа протупил, сумма в заголовке ICMP была не правильной. Ответ пошёл. Да,в IP пакетах надо CRC всегда считать...кстати STM аппаратно считает CRC этих пакетов установкой битов в дескрипторе передачи TDES0.CIC = 3