ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
23 апреля
934099
Sl (15.07.2019 19:51, просмотров: 807)
IAR ARM 8.11. В окнах Wach и Memory перестал видить изменения значения переменной. Подозреваю, что что-то не разрешает ST LINK чтение памяти. Переменные имеют адреса в памяти 0x2001.00xx - это SRAM1. IAR ARM 8.11 + ST LINK/V2(родной) + рабочая плата + STM32F745IGT6. Cube не использую. Программа работает нормально. Никакие установки в Project не изменял. Раньше все работало. 1. Когда останавливаю работу программы и начинаю идти пошагово при этом в окнах Watch и Memory(в соответствующих ячейках) НЕ ИЗМЕНЯЮТСЯ значения переменных. В дизассемблере вижу, что значения регистров R0, R1... изменяются корректно, читаю и записываю значения в правильные адреса. 2. Если записать переменную в переферийный регистр(например счетчика) я вижу в регистре правильное значение 3. Если переменную принудительно изменить вручную в Watch и Memory, то значения переменных в окне меняются. В дизассемблере вижу что в регистры R0, R1... записываются уже новые значения(соответствующие тому что в Watch и Memory). После изменения значения переменной в программе, в Watch и Memory прежнее значение. 4. Опытным путем установлено что проблема возникает после вызова подпрограммы MPU_RegionConfig(void) которая находится в ….include\mpu.c. Файлики mpu.c и mpu.h использую уже 3 года и их не изменял. 5. В IAR Projct -> Linker -> Config -> “Edit…” границы областей памяти установлены корректно. Vector Fable .intvec start 0x0020.0000 ITCM-FLASH 0x0020.0000 - 0x002F.FFFF AXI-FLASH 0x0800.0000 - 0x080F.FFFF FMC1-1 0x0 - 0x0 FMC1-2 0x0 - 0x0 FMC1-3 0x0 - 0x0 FMC1-4 0x0 - 0x0 HAND 0x0 - 0x0 QUADSPI ITCM-RAM 0x0000.0000 - 0x0000.3FFF DTCM-RAM 0x2000.0000 - 0x2000.FFFF SRAM1 0x2001.0000 - 0x2004.BFFF SRAM2 0x2004.C000 - 0x2004.FFFF BKP--RAM 0x4002.4000 - 0x4002.4FFF SDRAM1 0xC000.0000 - 0xC1EF.FFFF SDRAM2 0x0 - 0x0