-
- Если Keil это делает, то Вы это ему разрешили. AndreasW_home(402 знак., 10.04.2025 08:06,
)
- всё облазил. Стоит Erase Sector. Внешнего SCT нет. Записываю
серийник через STM32CubeProgrammer в самые последние 2К (адрес
0x0803F800) - при запуске отладки Кейл стирает. Записываю в
предыдущие 2К (адрес 0x0803F000) - всё нормально. Так и странность
в этом. Кейл не трогает ничего во всех страницах несвоей области
флэш. А там у меня еще есть разное. Стирает только самые последние
2К. - Лaгyнoв(10.04.2025 09:37)
- ешё одна идея: а Вы проверили, как разделены сектора на этом
микроконтроллере? Может быть, что этот адрес не начало отдельного
сектора? - AndreasW(10.04.2025 10:21)
- да много раз смотрел. Вот она последняя страница Page 319 -> Лaгyнoв(1 знак., 11.04.2025 10:00, картинка)
- Записываю серийник через STM32CubeProgrammer в самые последние
2К. AndreasW(255 знак., 10.04.2025 10:18)
- Ну вот по двум закладкам - Лaгyнoв(2 знак., 10.04.2025 15:33, картинка, картинка)
- Почему у Вас отсутствует init file для flash? AndreasW(368 знак., 11.04.2025 09:18)
- мой hex file сейчас заканчивается на адресе 0x0802D000. Все настройки проекта в Кейле были по умолчанию. Добавил только одну вещь - галочку на SRAM2. И я ни о чем не подозревал, пока не стал писать серийник в последней странице. Но теперь понял, что надо ограничивать размер IROM1. Тогда отладчик туда не лезет. - Лaгyнoв(11.04.2025 09:56)
- я обычно использую SCT file, мне кажется, что так можно точнее
контролировать. AndreasW(157 знак., 11.04.2025 09:07)
- как ошибка, если всё это (размер 0х40000) было по умолчанию? И что
такое SCT файл? - Лaгyнoв(11.04.2025 09:50)
- здесь удобно оставлять коммент для коллег. AndreasW(101 знак., 11.04.2025 14:59, картинка, картинка)
- точно, виноват, забыл совсем. Я ж подключал SRAM2. Там надо было прописать - Лaгyнoв(11.04.2025 16:43)
- здесь удобно оставлять коммент для коллег. AndreasW(101 знак., 11.04.2025 14:59, картинка, картинка)
- как ошибка, если всё это (размер 0х40000) было по умолчанию? И что
такое SCT файл? - Лaгyнoв(11.04.2025 09:50)
- Почему у Вас отсутствует init file для flash? AndreasW(368 знак., 11.04.2025 09:18)
- Ну вот по двум закладкам - Лaгyнoв(2 знак., 10.04.2025 15:33, картинка, картинка)
- ешё одна идея: а Вы проверили, как разделены сектора на этом
микроконтроллере? Может быть, что этот адрес не начало отдельного
сектора? - AndreasW(10.04.2025 10:21)
- всё облазил. Стоит Erase Sector. Внешнего SCT нет. Записываю
серийник через STM32CubeProgrammer в самые последние 2К (адрес
0x0803F800) - при запуске отладки Кейл стирает. Записываю в
предыдущие 2К (адрес 0x0803F000) - всё нормально. Так и странность
в этом. Кейл не трогает ничего во всех страницах несвоей области
флэш. А там у меня еще есть разное. Стирает только самые последние
2К. - Лaгyнoв(10.04.2025 09:37)
- а ведь есть такая фигня! В моем L476 128 страниц по 2 К. С адреса 0х08030000 у меня бутлодер. Он в осн. прошивку не входит. При запуске отладчика его никто не стирает. По адресу 0x0803F000 я пишу серийник. Тоже всё нормально. Но раньше я его писал по адресу 0x0803F800. Т.е. в самой последней странице. И вот там он при отладке стирался. Голову поломал и забил. Стал его записывать в 0x0803F000. Всё равно свободно. Нигде про это не нашел - почему стираются именно самые Лaгyнoв(12 знак., 09.04.2025 16:30)
- странно. Я пишу на последней странице серийный номер изделия (отдельно программатором). Потом отлаживаю в Кейле, при смене прошивки ничего не стирается. Или эти калибровочные данные пишутся из вашей прошивки? - Лaгyнoв(09.04.2025 12:53)
- Сколько работал с OpenOCD - стриается лишь та область, куда пишу прошивку. А что там с Кейл - хз, но зачем бы ему стирать всё? - POV(09.04.2025 12:10)
- Ну во 1-х надо чтобы в твоем проекте эта область не была
инициализирована, а во 2-х - все есть в настройках отладки -
Project Options / Debug / Settings / Flash Download - опции Erase
Full / Erase Sectors - il-2(09.04.2025 11:24)
- в твоем проекте эта область не была инициализирована - а можно
поподробнее, это в каком месте? - danuna(09.04.2025 12:04)
- Вот там AlexBi(1 знак., 09.04.2025 14:24, картинка)
- оно ж там по умолчанию так и стоит. - Лaгyнoв(09.04.2025 15:46)
- Да, стоит. Еще надо будет обрезать flash в настройках, что бы
последний сектор остался свободным AlexBi(1 знак., 09.04.2025 15:56, картинка)
- интересно. То есть по этой логике мне надо указать у себя (для 256К
флэша и страниц по 2К) Size размером не 0х40000, а 0х3F000. Надо
попробовать. :-) - Лaгyнoв(11.04.2025 08:25)
- Попробовал с STM32L476. Если в настройках Options for Target сказать Size 0x3F000 вместо 0х40000, то всё нормально. Последняя страница не стирается. Но всё это очень странно. Почему-то для G070 это не требуется. Там Кейл не чудит. - Лaгyнoв(11.04.2025 09:09)
- к сожалению того пульта пока нет под рукой. Попробовал на другом, где STM32G070. Там 128К с тем же размером страницы 2К. Так там нет изначально проблемы. Пишу серийник программатором куда угодно. Отладчик Кейла его не трогает. При настройках по умолчанию. Т.е. проблема у меня только с STM32L476 - Лaгyнoв(11.04.2025 08:34)
- а почему 0x3000 размер? там страницы по 1 кб, всего их 16, по идее размер должен быть 0x3c00 для 15кб если я правильно понимаю - danuna(10.04.2025 21:28)
- интересно. То есть по этой логике мне надо указать у себя (для 256К
флэша и страниц по 2К) Size размером не 0х40000, а 0х3F000. Надо
попробовать. :-) - Лaгyнoв(11.04.2025 08:25)
- Да, стоит. Еще надо будет обрезать flash в настройках, что бы
последний сектор остался свободным AlexBi(1 знак., 09.04.2025 15:56, картинка)
- оно ж там по умолчанию так и стоит. - Лaгyнoв(09.04.2025 15:46)
- Keil я никогда не пользовался, но в IAR, насколько мне помнится, для ваших целей нужно было в файле конфигурации проекта выделить (задать/определить) сектор (или несколько секторов), исключив их для линкера из общей области памяти в которой размещаются переменные и код. Соответственно писать ваши калибровочные данные нужно будет, используя указатель, который инициализируется адресом начала выделенного сектора. - reZident(09.04.2025 12:17)
- карту памяти от линкера глянь. если карта не создаётся -- поставь галку для создания. - VVB(09.04.2025 12:06)
- Вот там AlexBi(1 знак., 09.04.2025 14:24, картинка)
- в твоем проекте эта область не была инициализирована - а можно
поподробнее, это в каком месте? - danuna(09.04.2025 12:04)
- Если Keil это делает, то Вы это ему разрешили. AndreasW_home(402 знак., 10.04.2025 08:06,