В списке устройств KEIL нет нужного ядра/чипа

Кто любит RISC в жизни, заходим, не стесняемся.
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

Вопрос возник из одной темы, обсуждаемой в разделе АРМ, но я все же считаю нужным обсудить его отдельно.

Делаю алгоритм для программирования внешней QUAD SPI флеш средствами KEIL. Контроллер STM32F746

В папке Keil\arm\Flash взял шаблон. При работе шаблона возникли проблемы (включение тактирования qspi вешает программу). В ходе ковыряний я заподозрил, что дело в неправильном выборе целевого устройства в настройках.

Залез в настройки

Изображение

Ни ядра M7, ни контроллеров серии M7 нет.   Хотя у меня все библиотеки установлены, открываю другие проекты
Изображение




Там все есть.



Когда я открываю шаблон в папке C:\Keil_v5\ARM\Flash\Template, то он пишет

Изображение

Жму Install, скачиваю файл, устанавливаю - бестолку.



Что я делаю не так?
Реклама
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение 240265 »

Зайди в Pack Installer и установи нужные DFP.
IVL ex UA6PJ
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение VladislavS »

Версия Keil какая?

И чего тебе в одной теме не сидится? Через час ещё на одной вкладке не будешь знать что прставить, ещё тему создашь?
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

[uquote="240265",url="/forum/viewtopic.php?p=3787794#p3787794"]Зайди в Pack Installer и установи нужные DFP.[/uquote]

Первый пост не читаем?
Хотя у меня все библиотеки установлены, открываю другие проекты
И скрин ниже. Не? Не видели? Открываю обычный проект - все на месте. Открываю другой - заканчивается на М4

Добавлено after 7 minutes 19 seconds:
[uquote="VladislavS",url="/forum/viewtopic.php?p=3787816#p3787816"]Версия Keil какая?

И чего тебе в одной теме не сидится? Через час ещё на одной вкладке не будешь знать что прставить, ещё тему создашь?[/uquote]

Да нет. Мне на электрониксе уже сказали, что Legacy (на основе которого создан шаблон из Keil) действительно только для F4. То есть на имеющемся в Keil шаблоне для алгоритма проект под F7 не сделать.
Вы же утверждали, что делали алгоритм за 15 минут и 15 минут отлаживали. Врали наверное? Попросил Вас дать образец - отсылаете к примерам. Попросил скачать мой проект, глянуть ОДНУ строчку кода - молчание. Нет, я конечно понимаю, что вы не обязаны тратить на меня свое время. Но вы потратили значительно большее его количество на написание всего того, что вы уже написали.

Вот какими еще словами, на каком языке мне объяснить мою проблему?
Хочу алгоритм. Читаю мануал, копирую шаблон - он запускается, все ОК. Дальше хочу по мануалу https://arm-software.github.io/CMSIS_5/ ... rithm.html прописать в нем функции. А написать эти функции я тоже хочу по мануалу - аппликуха была соответствующая.
Включаю тактирование QSPI - проект виснет.


Да.... версия keil 5.23
Реклама
Эиком - электронные компоненты и радиодетали
SII
Вымогатель припоя
Сообщения: 635
Зарегистрирован: Пт янв 30, 2009 14:50:35
Откуда: Солнечногорск

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение SII »

На первом скрине выбран vendor ARM, на втором -- STM. Поэтому в первом случае она показывает, что у неё есть чисто АРМовское, а во втором -- что имеется из числа производимых конкретно STM.
Реклама
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

[uquote="SII",url="/forum/viewtopic.php?p=3787832#p3787832"]На первом скрине выбран vendor ARM, на втором -- STM. Поэтому в первом случае она показывает, что у неё есть чисто АРМовское, а во втором -- что имеется из числа производимых конкретно STM.[/uquote]

Разница между этими скринами в том, что один - это настройки шаблона алгоритма из папки KEIL, а во втором настройки обычного проекта. А не в том, что я выбрал.
Я могу переделать первый скрин и выбрать в нем Vendor STM - вы увидите там контроллеры максимум до 4 серии.
Второй скрин - для того, чтобы мне никто не говорил, что у меня что-то там не установлено и не предлагал скачать и установить. Но люди все равно предлагают скачать и установить. Я следую этому совету - ничего не меняется
Реклама
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение VladislavS »

[uquote="MementoMori",url="/forum/viewtopic.php?p=3787822#p3787822"]Врали наверное?[/uquote]Хамишь, парниша?
Изображение
ham.png
(243.01 КБ) 1559 скачиваний
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

хамишь парниша
Честно, даже и не думал. Сарказм небольшой, извините.

Добавлено after 5 minutes 51 second:
Интересный скрин - это проект из папки KEIL? Или мой скачанный? Ответьте, не игнорируйте этот вопрос.
На скрине я вижу ниспадающий список, неактивный, в нем "Software pack"
В моем кейловском шаблоне - "device database' и поменять на software pack нельзя.
В других проектах, где у меня в этом поле значится software pack, я могу выбрать F7.

А посему спрашиваю конкретно, по-русски и предельно ясно - вы открыли мой проект (вы писали, что скачивали его) или же из папки keil? Если мой и у вас в поле стоит "software pack", значит дело не в настройках конкретного проекта, а в самом keil. Если же вы открывали проект из своей папки Keil, то две просьбы : 1. Скинуть этот проект сюда. 2. Посмотреть, что будет в этом поле, если открыть мой проект - "software pack" или "device database"
Если вы это любезно сделаете, то я пойму хотя бы в чем у меня проблема - в кейл или в проект-шаблоне.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение VladislavS »

На скриншоте проект из папки Keil. Вот он. Даже не открытый ни разу, только закинул в него файл FlashOS.h чтобы он неприкаянный не болтался.

Keil и все паки обновить бы до крайних версий, так будет правильней.
000.zip
(16.07 КБ) 224 скачивания
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

Докладываю.
Скачал ваш проект. В списке появились контроллеры 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 перестала вызываться.

Добавлено after 4 minutes 44 seconds:
Вот проект, тот что Вы мне выслали, с подключенными библиотекам для F7.
https://cloud.mail.ru/public/2zaK/2JA9N5d9L
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение VladislavS »

Опять какую-то гадость в проект тянешь. Вполне достаточно заинклудить файл stm32f746xx.h. Зачем в проект system_stm32f7xx.c попал?
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

Убрал гадость.
Не помогло.

Во FlashDev нет ошибок?

Код: Выделить всё

struct FlashDevice const FlashDevice  =  {
    FLASH_DRV_VERS,             // Driver Version, do not modify!
   "W25Q128",   // Device Name 
   EXTSPI,                     // Device Type
   0x90000000,                 // Device Start Address
   0x001000000,                 // Device Size in Bytes (16MB)
   256,                       // Programming Page Size
   0,                          // Reserved, must be 0
   0xFF,                       // Initial Content of Erased Memory
   100,                        // Program Page Timeout 100 mSec
   3000,                       // Erase Sector Timeout 3000 mSec

// Specify Size and Address of Sectors
   0x00001000, 0x0000000, 
	 
   SECTOR_END
};
В ней все понятно, единственное что с последней строкой, где размер и адрес сектора - не совсем ясно и однозначно. У меня размер стираемого сектора 4кб (0x1000).
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение VladislavS »

Интересно, а что будет, если IDE попробует что-то считать из неинициализированного QSPI? Попробуй пустышку для функции BlanckCheck добавить, чтобы он напрямую в память не лез.
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

[uquote="VladislavS",url="/forum/viewtopic.php?p=3787957#p3787957"]Интересно, а что будет, если IDE попробует что-то считать из неинициализированного QSPI? Попробуй пустышку для функции BlanckCheck добавить, чтобы он напрямую в память не лез.[/uquote]

Надо же.... хоть какое-то разнообразие в работе кейла появилось...
Вставил я пустышку - процесс пошел. Стирание и программирование пошло "без ошибок" А вот на этапе проверки кейл задумался на 5 секунд, а после выдал, что таймаут памяти истек.
Это при включенном тактировании.
А при выключенном - "стирание и программирование" пустышками тоже без ошибок, а при проверке - куча сообщений

Код: Выделить всё

Contents mismatch at: 900000B9H  (Flash=00H  Required=07H) !
Too many errors to display !
Добавлено after 3 minutes 19 seconds:
Еще один момент...
Вот sct файл основного проекта, из которого я шью флеш, автоматом сгенерированный кубом и TouchGFX Designer'ом

Код: Выделить всё

; *************************************************************
; *** 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 0x1000000  {    ; load region size_region
 ER_EROM1 0x90000000 0x1000000  {  ; load address = execution address
  *.o (ExtFlashSection)
   *.o (TextFlashSection)
   *.o (FontFlashSection)
  }
}

Вот как-то настораживает меня отсутствие extflash.bin, равно как и самого bin файла физически. Но при использовании этого файла на дискавери со стандартным скомпилированным FLM алгоритмом прокатывает.
Последний раз редактировалось MementoMori Вс фев 09, 2020 16:05:50, всего редактировалось 1 раз.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение VladislavS »

[uquote="MementoMori",url="/forum/viewtopic.php?p=3787967#p3787967"]Вот как-то настораживает меня отсутствие extflash.bin, равно как и самого bin файла физически.[/uquote]В прошивке секции ExtFlashSection, TextFlashSection или FontFlashSection используются? Если да, то линкер в них будет данные помещать.

Добавлено after 2 minutes 3 seconds:
[uquote="MementoMori",url="/forum/viewtopic.php?p=3787967#p3787967"]А при выключенном - "стирание и программирование" пустышками тоже без ошибок, а при проверке - куча сообщений

Код: Выделить всё

Contents mismatch at: 900000B9H  (Flash=00H  Required=07H) !
Too many errors to display !
[/uquote]Ну значит моё предположение верное. Интересно, заглушку на Verify сам догадаешься поставить?
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

Ну значит моё предположение верное.
Какое? Нельзя поподробнее? Что дало использование BlankCheck?
Интересно, заглушку на Verify сам догадаешься поставить?
Что значит, заглушка? Пустышка - я понимаю что такое. А заглушка... У меня, кстати, функции Verify и нет в проекте (она лишь описана в FlashOS).
В прошивке секции ExtFlashSection, TextFlashSection или FontFlashSection используются? Если да, то линкер в них будет данные помещать.
Используются. По крайней мере в одной из папок куча *.O файлов с названиями картинок, которые надлежит поместить во флеш.

Добавлено after 3 minutes 41 second:
И вот еще... гляньте в основной проект. Все ли в его настройках достаточно правильно, чтобы работать с алгоритмом и прошивкой?
https://cloud.mail.ru/public/298i/2RV33ee2Z
А то может не там копаем....
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение VladislavS »

[uquote="MementoMori",url="/forum/viewtopic.php?p=3787976#p3787976"]Какое? Нельзя поподробнее? Что дало использование BlankCheck?[/uquote]Я же и тут, и на электрониксе написал.

[uquote="MementoMori",url="/forum/viewtopic.php?p=3787976#p3787976"]У меня, кстати, функции Verify и нет в проекте (она лишь описана в FlashOS).[/uquote]Ну значит не догадался...

[uquote="MementoMori",url="/forum/viewtopic.php?p=3787976#p3787976"]И вот еще... гляньте в основной проект[/uquote]Честно? Влом. Да и не хочется ужастики на ночь глядя смотреть... :)
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

Электроникс не читал. Прочел сейчас. Вы про это?

Есть вероятность, что доступ к недоинициализированной памяти может HardFault делать. А IDE, перед стиранием может проверять что там записано. Или пустышку на функцию BlanckCheck добавь.
У меня тоже была мысль про недоинициализацию. Но неужели простое включение тактирования к этому может привести?

Насчет verify - объясните все таки вашу идею. Я о ней вообще не беспокоился, потому что она задействуется в конце. И ее наличие/отсутствие/проблемы на стирание сектора никак повлиять не могут.
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение VladislavS »

[uquote="MementoMori",url="/forum/viewtopic.php?p=3787967#p3787967"]Вставил я пустышку - процесс пошел. Стирание и программирование пошло "без ошибок" А вот на этапе проверки кейл задумался на 5 секунд, а после выдал, что таймаут памяти истек.[/uquote]
[uquote="MementoMori",url="/forum/viewtopic.php?p=3788059#p3788059"]Насчет verify - объясните все таки вашу идею. Я о ней вообще не беспокоился, потому что она задействуется в конце. И ее наличие/отсутствие/проблемы на стирание сектора никак повлиять не могут.[/uquote]
А теперь складываем 2+2...
MementoMori
Первый раз сказал Мяу!
Сообщения: 34
Зарегистрирован: Ср фев 05, 2020 19:35:56

Re: В списке устройств KEIL нет нужного ядра/чипа

Сообщение MementoMori »

Не 2+2, а 2+х+2.
Х - это, к моему стыду, непонимание назначения blankCheck.
Добавив пустышку, мы доказали, что функция EraseSector все-таки вызывается, но при этом не возвращает ни нуля, ни единицы. А такое возможно только при улете в HardFault. Теперь 2+х+2 сложились.
И вот эта фраза

Либо начни с чего-нибудь попроще, либо напиши правильную инициализацию полностью. Есть вероятность, что доступ к недоинициализированной памяти может HardFault делать. А IDE, перед стиранием может проверять что там записано. Или пустышку на функцию BlanckCheck добавь
предельно ясна.

Тогда мне остается в основном проекте отладить альтернативные упрощенные функции работы с qspj. После того как отлажу, будет следующая попытка запустить алгоритм.

Спасибо за советы!
Ответить

Вернуться в «ARM»