MementoMori 4 8 февраля, 2020 Опубликовано 8 февраля, 2020 · Жалоба 2 minutes ago, MasterElectric said: MementoMori подключаюсь к процессу, для начала просто поработаю с флешкой. CubeIDE + stm32h750vb + W25Q128 на втором банке. Буду держать в курсе. Попробуйте то, с чего начинаю я и с чего у меня начинаются глюки: /* Enable the QSPI interface clock */ RCC->AHB3ENR |= 0x00000002; После того, как я это добавляю EraseSector перестает вызываться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 8 февраля, 2020 Опубликовано 8 февраля, 2020 · Жалоба 1 час назад, MementoMori сказал: У вас или у Владислава не найдется в закромах примера под QSPI? компилирующегося. Работающего? В папке Keil примеров хоть попой кушай. Вы авторам Keil не доверяете? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 8 февраля, 2020 Опубликовано 8 февраля, 2020 · Жалоба 15 minutes ago, VladislavS said: В папке Keil примеров хоть попой кушай. Вы авторам Keil не доверяете? Вы издеваетесь? Или посты мои не читаете? Вы понимаете разницу между общим и частным. Примеры дают общее представление о принципах. А у меня проблема частная: Еще раз повторяю!!!!!!! Я взял шаблон из папки кейла! Для тех кто в танке - шаблон - это тот же пример, который вы мне предлагаете посмотреть, но без кода внутри функций. Проверил! Keil его с успехом прогоняет, так как функции шаблона возвращают ноль всегда. Я добавляю туда единственную строку, самую первую из пункта 5.2.1. мануала https://www.st.com/content/ccc/resource/technical/document/application_note/group0/b0/7e/46/a8/5e/c1/48/01/DM00227538/files/DM00227538.pdf/jcr:content/translations/en.DM00227538.pdf которым Вы такого же вопрошающего тыкали в лицо на radiokote, спрашивая при этом, зачитал ли он его до дыр. И после этой единственной строки шаблон перестает работать дальше функции init Как работает шаблон, я уже понял, почитав эти самые примеры. Что нужно делать дальше? Реализовывать под конкретные контроллер и память. А на этом польза примеров из папки кейла заканчивается, потому что по F7 и n25q128 примеров нет. Тогда зачем вы даете мне бесполезные советы? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MasterElectric 0 8 февраля, 2020 Опубликовано 8 февраля, 2020 (изменено) · Жалоба У меня такое чувство что я неправильно развел плату, взял все сигналы с BK2, теперь до меня стало доходить что оно вроде как работает только в Dual режиме( В single только с BK1. Или они независимые? В иллюстрациях явно не было такого варианта, но есть бит FSEL, надеюсь это то что надо. Вопрос снят:In the case that the two Flash-memory devices are different, the Dual-Flash mode must be disabled (DFM = 0) and each Flash memory could be used in standalone, allowing either Flash 1 or Flash 2 to be enabled using QUADSPI_CR[7] FSEL bit. Но как всегда в RM про этот бит ни слова, нашел аппликуху AN4760 QUADSPI interface description. Изменено 8 февраля, 2020 пользователем MasterElectric Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 8 февраля, 2020 Опубликовано 8 февраля, 2020 · Жалоба 52 minutes ago, MasterElectric said: Но как всегда в RM про этот бит ни слова А по-моему было там такое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
VladislavS 39 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 7 часов назад, MementoMori сказал: Вы издеваетесь? У меня сложилось впечатление, что вам меня переспорить важнее чем флэшлоадер написать. Скачал проект, что на коте выложен. Открыл... Какой такой легаси? Какой ещё Cortex-M0 для STM32F746BG? Открываю template из папки Keil и всё чистенько. Меняем таржет на Cortex-M7, добаволяем заголовочный файл процессора stm32f746xx.h и погнали программировать. Там же, кстати, лежит проект Test, в котором показано как отлаживать алгоритм. У меню уже по третьему заходу попкорн закончился при наблюдении этого триллера :) Как можно в одной структуре и трёх функциях заблудиться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 51 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба Это мастерство ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 2 hours ago, VladislavS said: Какой такой легаси? Какой ещё Cortex-M0 для STM32F746BG? Меня в этот шаблон долго тыкали носом. Первое, что я сделал - попытался поменять - не вышло. Но компилятор схавал подключенные библиотеки для F7, код запустился в памяти, правильно дергал ножками. Я решил что это несущественно и подзабыл про этот факт, теперь к нему вернулся. 2 hours ago, VladislavS said: Меняем таржет на Cortex-M7, БИНГО!!!! А теперь попробуйте поменять! Об этом другая тема - здесь и на радиокоте. Не меняется. Паки под F7 установлены, в обычных проектах F7 видится. При загрузке же шаблона сообщает об ошибке, об отсутствии необходимых паков. Предлагает скачать, дает ссылку. Скачиваю, устанавливаю - без ошибок. Но выбрать F7 все равно не могу его нет. У меня в software pack есть F7, а в deviceDatabase нет. Если я открываю проект с шаблоном их папки Keil - у меня кнопка SOftwarePack НЕАКТИВНА Да, мне уже сказали в соседней теме, что нужно пересоздавать проект, но я не пойму, КАК ПОЛУЧИЛОСЬ У ВАС с кейловским проектом выбрать F7: 2 hours ago, VladislavS said: Открываю template из папки Keil и всё чистенько Маааленькая просьба. Можете выложить этот Template из вашей папки Keil? у Вас версия keil какая? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 22 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба Какая версия keil и какую версию компилятора используете? Ругается и говорит некое волшебное сочетание "legacy pack"? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 7 minutes ago, Forger said: Какая версия keil и какую версию компилятора используете? Ругается и говорит некое волшебное сочетание "legacy pack"? 5.23. "use default compiler version" Да, говорит legacy pack, но не ругается, а предупреждает и предлагает скачать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 22 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 49 minutes ago, Forger said: и какую версию компилятора используете? 39 minutes ago, MementoMori said: default compiler version Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба Мне таки скинули добрые люди тот же самый проект-шаблон из той же самой папки. В списке появились необходимые контроллеры. Все! Значит в моей 5.23 версии был какой-то косяк в этом проекте. Forger, я ради интереса попереключал версии компилятора - ни к чему плохому это не привело. Так что ваш FacePalm - скорее в ваш адрес. Только, как я и предполагал - проблемы это не решило. Скачал я тот проект. В списке появились контроллеры F7 и ядро M7. Проблема выбора контроллера решена. Этот пустой проект при записи кейлом во внешнюю флеш не выводит ошибок, перебирает адреса, думая что все ОК, так как функция стирания сектора возвращает 0. Ура! Идем дальше! Читаем мануал: Делаем так же int Init (unsigned long adr, unsigned long clk, unsigned long fnc) { /* Enable the QSPI interface clock */ RCC->AHB3ENR |= 0x00000002; /* Reset QSPI peripheral */ RCC->AHB3RSTR |= (RCC_AHB3RSTR_QSPIRST); /* Reset */ RCC->AHB3RSTR &= ~(RCC_AHB3RSTR_QSPIRST); /* Release reset */ /* Enable Quad-SPI peripheral */ QUADSPI->CR = 0x00000001; /* Add your Code */ return (0); // Finished without Errors } Компилируем, запускаем основной проект, пытаемся прошивать - процесс останавливается на адресе 0x90000000 и выдает ошибку Добавлено after 1 minute 43 seconds: Забыл сказать - вычисляя, на каком же этапе происходит затык, я пришел к тому, что уже на этапе включения тактирования int Init (unsigned long adr, unsigned long clk, unsigned long fnc) { /* Enable the QSPI interface clock */ RCC->AHB3ENR |= 0x00000002; /* Add your Code */ return (0); // Finished without Errors } Этого достаточно, чтобы фунция EraseSector перестала вызываться. Вот проект - работоспособный шаблон, который перестает работать как только включаешь тактирование QUADSPI https://cloud.mail.ru/public/2zaK/2JA9N5d9L Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 22 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба 5 minutes ago, MementoMori said: я ради интереса попереключал версии компилятора - ни к чему плохому это не привело. А это уже двойной facepalm, нет слов Но продолжайте дальше, попкорн пока еще не закончился )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MementoMori 4 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба Just now, Forger said: А это уже двойной facepalm, нет слов Как бы там ни было, но первую проблему я решил без вас. 1 minute ago, Forger said: Но продолжайте дальше, Отправляйтесь в игнор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 22 9 февраля, 2020 Опубликовано 9 февраля, 2020 · Жалоба Just now, MementoMori said: Как бы там ни было, но первую проблему я решил без вас. Эта "проблему" решается без посторонней помощи 99,9% разработчиков за 15..20 минут. Продолжайте, очень интересно чем это все закончится )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться