jockerface 0 September 29 Posted September 29 (edited) · Report post Добрый день. Подскажите, пожалуйста: как правильно настроить Keil v5 для прошивки и в NAND Flash? Камень - STM32F407. NAND - mx60lf8g18ac-ti. Пробую такие настройки: Пишет при верификации прошивки Код: Contents mismatch at: 70004000H (Flash=00H Required=DDH) ! Переменная объявлена так: Код: uint32_t keyFlash __attribute__((at(0x70004000UL))) = 0xAABBCCDD; Нормально пишет/читает процедурами HAL_NAND_Write_Page_8b/HAL_NAND_Read_Page_8b. Edited September 29 by jockerface Quote Share this post Link to post Share on other sites More sharing options...
x893 29 September 29 Posted September 29 · Report post Найти или написать файл FLM для прошивки NAND Quote Share this post Link to post Share on other sites More sharing options...
jockerface 0 September 29 Posted September 29 · Report post 1 минуту назад, x893 сказал: Найти или написать файл FLM для прошивки NAND К сожалению, поиск пока ничего не дал. Насколько я понял, можно взять шаблонный проект (_Template) и изменить его, переписав функции для очистки\записи\чтения flash. Quote Share this post Link to post Share on other sites More sharing options...
x893 29 September 29 Posted September 29 · Report post 1 hour ago, jockerface said: К сожалению, поиск пока ничего не дал. Насколько я понял, можно взять шаблонный проект (_Template) и изменить его, переписав функции для очистки\записи\чтения flash. Да Quote Share this post Link to post Share on other sites More sharing options...
jockerface 0 September 29 Posted September 29 · Report post 4 минуты назад, x893 сказал: Да Подскажите, пожалуйста: как там запись/чтение организовать? Quote Share this post Link to post Share on other sites More sharing options...
HardEgor 48 September 29 Posted September 29 · Report post 32 минуты назад, jockerface сказал: Подскажите, пожалуйста: как там запись/чтение организовать? http://forum.easyelectronics.ru/viewtopic.php?f=35&t=45825 Quote Share this post Link to post Share on other sites More sharing options...
jockerface 0 September 29 Posted September 29 · Report post 1 минуту назад, HardEgor сказал: http://forum.easyelectronics.ru/viewtopic.php?f=35&t=45825 Так там же SPI, а не параллельный интерфейс. Или это не играет роли? Quote Share this post Link to post Share on other sites More sharing options...
HardEgor 48 September 29 Posted September 29 · Report post 8 минут назад, jockerface сказал: Так там же SPI, а не параллельный интерфейс. Или это не играет роли? Ну значит вам надо поправить под параллельный, а можно просто с нуля написать. Я ссылку дал, что бы вы прочитали суть процессов и в какую сторону двигаться. Quote Share this post Link to post Share on other sites More sharing options...
jockerface 0 September 29 Posted September 29 (edited) · Report post 3 часа назад, HardEgor сказал: Ну значит вам надо поправить под параллельный, а можно просто с нуля написать. Я ссылку дал, что бы вы прочитали суть процессов и в какую сторону двигаться. Понял, буду разбираться. Ещё такой вопрос: почему может быть такое, что HAL_NAND_Write_Page_8b вычитывает корректный буфер, а в переменой uint8_t keyFlash __attribute__((at(0x70001000UL))) лежит значение 0xFF? Edited September 29 by jockerface Quote Share this post Link to post Share on other sites More sharing options...
HardEgor 48 September 29 Posted September 29 · Report post 1 час назад, jockerface сказал: Ещё такой вопрос: почему может быть такое, что HAL_NAND_Write_Page_8b вычитывает корректный буфер, а в переменой uint8_t keyFlash __attribute__((at(0x70001000UL))) лежит значение 0xFF? В отладчике надо пошагово смотреть что происходит. Quote Share this post Link to post Share on other sites More sharing options...
jockerface 0 September 30 Posted September 30 · Report post 16 часов назад, HardEgor сказал: В отладчике надо пошагово смотреть что происходит. Значение переменной меняется с 0x00 на 0xFF в момент выполнения __FSMC_NAND_ENABLE. Quote Share this post Link to post Share on other sites More sharing options...
jcxz 142 September 30 Posted September 30 · Report post 18 часов назад, jockerface сказал: Ещё такой вопрос: почему может быть такое, что HAL_NAND_Write_Page_8b вычитывает корректный буфер, а в переменой uint8_t keyFlash __attribute__((at(0x70001000UL))) лежит значение 0xFF? Странно, что функция, содержащая в своём названии "Write" (и не содержащая "Read"), вообще у вас что-то "вычитывает". Вы ничего не путаете? Quote Share this post Link to post Share on other sites More sharing options...
jockerface 0 September 30 Posted September 30 · Report post 3 минуты назад, jcxz сказал: Странно, что функция, содержащая в своём названии "Write" (и не содержащая "Read"), вообще у вас что-то "вычитывает". Вы ничего не путаете? Да, действительно, название функции перепутал. HAL_NAND_Read_Page_8b имелось в виду. Quote Share this post Link to post Share on other sites More sharing options...
jockerface 0 September 30 Posted September 30 · Report post При попытке чтения ID функцией HAL_NAND_Read_ID возвращаются разные значения. Подозрение, что я где-то в настройках тайминга накосячил. Quote Share this post Link to post Share on other sites More sharing options...
x893 29 September 30 Posted September 30 · Report post 1 hour ago, jockerface said: Подозрение, что я где-то в настройках тайминга накосячил. Надо раскосячивать. Quote Share this post Link to post Share on other sites More sharing options...