Загрузка данных


        # НАХОДИТСЯ ВНУТРИ ОСНОВНОГО ФАЙЛА СКРИПТА (После поиска code_end_vma)
        
        # Вычисляем физический конец кода во Flash
        code_end_lma = code_end_vma - 0x20000000
        
        # КРИТИЧЕСКИЙ ФИКС ДЛЯ СОВМЕСТИМОСТИ С MPU:
        # Округляем стартовый адрес данных до ближайшей аппаратной границы 16 КБ (0x4000)
        # Это уберет BusFault и позволит MPU успешно разметить некэшируемую RAM!
        flash_data_start_lma = (code_end_lma + 0x3FFF) & ~0x3FFF
        
        print(f"[LMA Filter] Dynamic MPU-Safe Packing Initiated:")
        print(f"  -> Code region ends at Flash LMA: {hex(code_end_lma)}")
        print(f"  -> Data payload will start at aligned Flash LMA: {hex(flash_data_start_lma)}")