Jump to content

    
Sign in to follow this  
MementoMori

Проблема при старте отладки в Keil

Recommended Posts

 Добрый вечер.

Есть проект под Keil, для STM32H743BIT6 (2 Mb Flash, 1Mb RAM). Недавно проект сильно разжирел - я импортировал в него блок кода TouchGFX, который раньше нормально, без проблем грузился в STM32F746BGT6

Проект компилируется,флешь шьется, а дальше, примерно здесь

MeBSQVmu.png?download=1&name=%D0%A1%D0%B

 

Вылазит ошибка

pJLksfAv.png?download=1&name=%D0%A1%D0%B

 

После чего контроллер ресетится и работает без проблем.  Беда только в том, что отлаживать не могу, не коннектится отладчик 

 

Проблема исчезает если в 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 я не могу.

 

Может тут проблема?

X42zgAST.png?download=1&name=%D0%A1%D0%B

Share this post


Link to post
Share on other sites
32 minutes ago, Obam said:

Xtal (MHz) 240.0 ( \-8Ж )- внешнее тактирование (кварц? генератор???)

Кварц 8 Мгц.

В проекте под STM32F746 там 200 стоит (куб так вписал), но это не мешает ничему. 

Но все же - поставил 8 Мгц - не помогло.

33 minutes ago, Obam said:

Ну и как обычно: в коде отрубается JTAG (проц-то пин-в-пин?)

Ничего не отрубается.

Loading object code - это что-то грузится в оперативную память, так я понимаю?

Share this post


Link to post
Share on other sites

Не может так быть, что по какой-то причине отладчик пытается что-то прочесть непосредственно по адресу 0х90000000, при старте, когда qspi ещё не инициализирована и не включена в режим memory mapped? 

Каковы могут быть причины этого, почему на это влияет внесение изменений в sct файл?  Я смотрел в мар файл, вроде бы по адресу 0х90000000 только данные, никаких функций нет.... 

Share this post


Link to post
Share on other sites
20 hours ago, Obam said:

Ну если 240МГц не влияют, тогда как память из qSPI проходит по категории "on-chip" да ещё и "по дефолту"?

Как бы там ни было, это генерирует КУБ, и в случае с 746 камнем это прокатывало. 

 

Я не нашёл информацию, может кто подскажет - "loading object code" - что это за процесс, что откуда и куда грузится, и где прописывается адрес "откуда" и адрес "куда"? 

Share this post


Link to post
Share on other sites
1 час назад, MementoMori сказал:

Я не нашёл информацию, может кто подскажет - "loading object code" - что это за процесс, что откуда и куда грузится, и где прописывается адрес "откуда" и адрес "куда"? 

Что-то у вас с отладчиком, может быть ST-Link драйвер устарел или прошивка отладчика или сам Keil?

 

А "loading object code" поискать в хэлпе Keil пробовали?

Share this post


Link to post
Share on other sites
32 minutes ago, HardEgor said:

Что-то у вас с отладчиком, может быть ST-Link драйвер устарел

Как вариант - обновил) получив новые баги. У меня китайский свисток.  

Спасибо за идею - есть у меня discovery, думаю, что смонтированный на нем STLINK  лучше китайского? 

Share this post


Link to post
Share on other sites

Если я убираю галку "load application at startup", то контроллер стартует, но я не могу ставить брейкпоинты, переменные в окне watch не читаются, доступа к памяти нет....

Share this post


Link to post
Share on other sites
3 минуты назад, MementoMori сказал:

Если я убираю галку "load application at startup", то контроллер стартует, но я не могу ставить брейкпоинты, переменные в окне watch не читаются, доступа к памяти нет....

Так он наверное просто не умеет отлаживать программу в QSPI памяти.

Share this post


Link to post
Share on other sites
Just now, HardEgor said:

Так он наверное просто не умеет отлаживать программу в 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?

Share this post


Link to post
Share on other sites
1 минуту назад, MementoMori сказал:

А почему тогда в проекте на F746 контроллере АНАЛОГИЧНЫЕ настройки не вызывают этой проблемы?

Не знаю, вон пишет Partial Programming, может отладочную информацию не смог загрузить?

Так-то, прежде чем гадать и "менять бл$дей", вначале стоит разобраться что за ошибки он пишет и какие он них могут быть последствия.

Share this post


Link to post
Share on other sites
4 minutes ago, HardEgor said:

Не знаю, вон пишет Partial Programming, может отладочную информацию не смог загрузить?

Это он пишет потому что в sct файле есть информация о размещении данных в qspi, а алгоритм прошивки для неё не указан. Вот он и прошивается только внутреннюю флеш, а на qspi, ранее прошитое, не тратит времени. Так надо. И это правильно. Это не ощибка

 

Share this post


Link to post
Share on other sites

Как бы там ни было, это генерирует КУБ, и в случае с 746 камнем это прокатывало.


Да уж, КУБ - это аргумент, "мощнее" только ЗВЁЗДЧАТЫЙ РОМБОДОДЭКАЭДР ((-8Ж

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this