MementoMori
Свой-
Постов
1 340 -
Зарегистрирован
-
Посещение
Весь контент MementoMori
-
Это он пишет потому что в sct файле есть информация о размещении данных в qspi, а алгоритм прошивки для неё не указан. Вот он и прошивается только внутреннюю флеш, а на qspi, ранее прошитое, не тратит времени. Так надо. И это правильно. Это не ощибка
-
А почему тогда в проекте на F746 контроллере АНАЛОГИЧНЫЕ настройки не вызывают этой проблемы? Если я закомментирую в SCT файле ExtFlashSection, то такой проблемы не возникает. Но при одном условии - что все, что я хотел разместить в qspi, влазит во внутреннюю флеш. А если у меня информации 10 мегабайт, то проект просто не линкуется. По понятным причинам. Так вот в 764 проце - как я делал - писал LR_EROM1 0x90000000 0x2000000 { ; load region size_region ER_EROM1 0x90000000 0x2000000 { ; load address = execution address *.o (ExtFlashSection) ;*.o (TextFlashSection) *.o (FontFlashSection) } } добавлял алгоритм прошивки qspi - прошивал. Затем убирал из настроек алгоритм, чтобы не шить qspi каждый раз. IDE мне сообщала об отсутствии алгоритма, пропускала эту секцию, прошивала контроллер и спокойно его запускала. Что не так с H743?
-
Если я убираю галку "load application at startup", то контроллер стартует, но я не могу ставить брейкпоинты, переменные в окне watch не читаются, доступа к памяти нет....
-
Не.... подключился через дискавери, обновил его прошивку, драйвер ST-Link, как оказалось, у меня последний. Бестолку.
-
Как вариант - обновил) получив новые баги. У меня китайский свисток. Спасибо за идею - есть у меня discovery, думаю, что смонтированный на нем STLINK лучше китайского?
-
Как бы там ни было, это генерирует КУБ, и в случае с 746 камнем это прокатывало. Я не нашёл информацию, может кто подскажет - "loading object code" - что это за процесс, что откуда и куда грузится, и где прописывается адрес "откуда" и адрес "куда"?
-
Не может так быть, что по какой-то причине отладчик пытается что-то прочесть непосредственно по адресу 0х90000000, при старте, когда qspi ещё не инициализирована и не включена в режим memory mapped? Каковы могут быть причины этого, почему на это влияет внесение изменений в sct файл? Я смотрел в мар файл, вроде бы по адресу 0х90000000 только данные, никаких функций нет....
-
Кварц 8 Мгц. В проекте под STM32F746 там 200 стоит (куб так вписал), но это не мешает ничему. Но все же - поставил 8 Мгц - не помогло. Ничего не отрубается. Loading object code - это что-то грузится в оперативную память, так я понимаю?
-
Проблема при старте отладки в Keil
MementoMori опубликовал тема в В помощь начинающему
Добрый вечер. Есть проект под Keil, для STM32H743BIT6 (2 Mb Flash, 1Mb RAM). Недавно проект сильно разжирел - я импортировал в него блок кода TouchGFX, который раньше нормально, без проблем грузился в STM32F746BGT6 Проект компилируется,флешь шьется, а дальше, примерно здесь Вылазит ошибка После чего контроллер ресетится и работает без проблем. Беда только в том, что отлаживать не могу, не коннектится отладчик Проблема исчезает если в sct файле закомментировать ExtFlashSection и FontFlashSection ; ************************************************************* ; *** Scatter-Loading Description File generated by uVision *** ; ************************************************************* LR_IROM1 0x08000000 0x00100000 { ; load region size_region ER_IROM1 0x08000000 0x00100000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections) .ANY (+RO) } RW_IRAM1 0x20000000 0x00050000 { ; RW data .ANY (+RW +ZI) } } LR_EROM1 0x90000000 0x2000000 { ; load region size_region ER_EROM1 0x90000000 0x2000000 { ; load address = execution address *.o (ExtFlashSection) ;*.o (TextFlashSection) *.o (FontFlashSection) } } Но, сами понимаете, пойти на это нельзя, без QSPI я не могу. Может тут проблема? -
Что случилось с поставками STM32H7?
MementoMori ответил MementoMori тема в Компоненты
А надо было писать, я вчера так и сделал - только я весь заказ отменил, у меня кроме контроллеров было светодиодов на 19 рублей -
Что случилось с поставками STM32H7?
MementoMori ответил MementoMori тема в Компоненты
Хех... Контроллер сей у дко электронщика так и висит в базе уже под третьей ценой. Поговорив с менеджером, заказал, оплатил, никаких отмен и предложений возврата денег не пришло. Всё таки менеджеры дубовые какие-то... Ситуация - поставщик изменил цену и сроки поставки. На 50 рублей и на один день. Я понимаю, для бездушной базы данных это трактуется не как редактирование позиции, а как удаление одной и добавление другой. Но когда менеджер с бинарной логикой на все вопросы, как заевшая пластинка, повторяет "производитель эту позицию больше не будет поставлять"..... Любой нормальный человек поймёт это как "данный компонент не поставляется" и будет ощущать когнитивный диссонанс, глядя в каталог, в котором этот компонент есть, причём по свежей цене. Объяснить клиенту, что на самом деле не актуален ваш заказ, а раз в базе компонент есть, то попробуйте заказать ещё раз, у него ума не хватает. -
Что случилось с поставками STM32H7?
MementoMori ответил MementoMori тема в Компоненты
Судя по ценам, эта контора пролетариата не любит. -
Что случилось с поставками STM32H7?
MementoMori ответил MementoMori тема в Компоненты
Так это вы свою контору привели, а она, как вы уже писали, только с юрлицами работает. А для пролетариата что-нибудь есть? -
Что случилось с поставками STM32H7?
MementoMori ответил MementoMori тема в Компоненты
1100-1300 это нормально. То что я заказал на апрель - обошлось по 1750. Местные барыги предлагают и по 3500 за штуку От 2х и до? Ну и приведите пример, чтобы был и первый пункт (недорого) и второй (2 недели). Да и вообще ваша формулировка странная - от 1000 руб - это до бесконечности. От двух недель - тоже до бесконечности. Покупатель обычно оперирует максимумами. -
Что случилось с поставками STM32H7?
MementoMori ответил MementoMori тема в Компоненты
Вопрос открыт... Где купить STM32H743B незадорого и побыстрее? -
Что случилось с поставками STM32H7?
MementoMori ответил MementoMori тема в Компоненты
Цирк какой-то.... Заказал в eltix.ru - заказ приняли, обещали поставить в конце марта-начале апреля. Ну бог с ними. И тут я обнаруживаю, что в ДКО электронщик, где я раньше их заказывал - божеская цена и срок поставки до 8 дней. Заказал, заказ приняли, выставили счёт. Причём в 2 часа ночи выставили (дежурят они что ли....). На следующий день оплатил - в мгновение ока пришёл ответный автоматический емайл, что позиция из заказа убрана, деньги вернём, поставщик изменил условия поставки. Лезу на сайт - что изменилось - контроллер стал ещё дешевле, рублей на 50, а срок поставки увеличился до 9 дней. Пишу мол, я согласен на изменившиеся условия поставки, готов принять ваше предложение о возврате денег, но не целиком, а разницы, всю позицию то зачем из заказа убирать? Отвечают - поставщик сказал, что не может поставить данную позицию. Скажите, а как вообще наши, отечественные компании работают? Они напрямую у st заказывают или ещё у кого? -
Так ведь при регенерации, проводимой в рамках чтения, данные сначала читаются, а к этому моменту они уже могут быть неисправный.
-
погуглю. А с настройками как? Нормальные? По какому принципу с ними можно поиграться? Не буду же я все возможные комбинации перебирать, это долго.
-
Ваш вариант?
-
Я подожду. Вопрос "сколько нужно" подразумевал не время, а количество циклов. Кстати. Вот мои настройки С чем еще можно поиграться, дабы еще немного поднять частоту?
-
Сколько нужно тестировать SDRAM?
MementoMori опубликовал тема в В помощь начинающему
Добрый вечер. Интересовался как-то на какой частоте может работать SDRAM на контроллере STM32H743, мне говорили - 90 МГц, не больше. Некоторые говорили 108 МГц. ЧТо имею - указанный контроллер последней ревизии, той что на 480 МГц, и SDRAM на 166 Мгц. Плата 4-слойная, разводка без изысков и выравниваний (только клок сделал длинее всего остального). Работает на 112 МГц, прошла 10 тыс циклов без единой ошибки. Тест - идеологически выдержанный while(1) { srand(1); for (uwIndex = 0; uwIndex < 4194304; uwIndex++){ *(__IO uint32_t*)(SDRAM_BANK_ADDR + 4*uwIndex) = rand(); } srand(1); for (uwIndex = 0; uwIndex < 4194304; uwIndex++){ if (*(__IO uint32_t*)(SDRAM_BANK_ADDR + 4*uwIndex) != rand()) err++; } ttt++; } Будь это на штатной частоте, я бы успокоился - все уже проверено до нас, раз производитель говорит, что на 90 МГц можно работать, значит он гонял память на этой частоте годами. А вот 112 МГц - это уже разогнано. Если бы SDRAM у меня была только для видеобуфера, то мне было бы спокойно - ну подумаешь, раз в час битый пиксель. Но все же хотелось бы разместить в SDRAM немножко критически важных данных, а немножко - это 1,5-2 МБ, в ОЗУ не влезут. Кто что скажет? -
Для такого объёма данных (1024 на 600, да ещё и 32 бит) 10 мсек таймаут маловат. Даже без оглядки на контроллер, а просто исходя из пропускной способности sdram. Ваш таймаут намекает на 100 fps, а это круто. У вас скорее всего меньше. Поставьте 100 мсек, медленнее работать не будет, да и вас, в случае чего, ожиданием не утомит.
-
Что случилось с поставками STM32H7?
MementoMori ответил MementoMori тема в Компоненты
Дешевле всех пока продает маузер. 1700 рублей плюс доставка 600 руб. У остальных поставщиков цена указана даже 900 рублей, но если заказать, то либо цена выше, либо никакого ответа от поставщика или счета не приходит. -
Добрый вечер. Прошу совета тех, кто работал с TOuchGFX. Не подскажете, как в этой системе получать координаты сенсорного экрана не только в момент нажатия и отпускания, но и непрерывно, во время скольжения пальца? По типу как работает слайдер.... Я пробовал ClickEvent, функцию getType - ловит координаты только в момент нажатия и отпускания - вот такой код к примеру void OPTIONS_SCREENView::box2ClickHandler(const Box& b, const ClickEvent& evt) { if (&b == &box2) { //Implement what should happen when 'box' is touched/clicked here. if(evt.getType() == ClickEvent::PRESSED) { int x = evt.getX(); int y = evt.getY(); // Do something with x and y, such as... presenter->touchRegistered(x, y); // you write this function in the presenter } } }
-
Вы правы. Суть была в том, что функция HAL_TIM_PWM_ConfigChannel сбрасывает бит Сapture/Compare output enable соответствующего канала в регистре CCER и не возвращает его состояние. Ошибка это или задумка, не знаю, но лечится либо грубо, повторным вызовом HAL_TIM_OC_Start_IT(&htim4, TIM_CHANNEL_2); либо тонко - записью 1 в соответствующий бит.