Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: работа с MMU в LH79520
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
Eugen79
Доброго времени суток!

Есть такая проблема!

Есть МК - Sharp LH79520, в нем присутствует MMU. Хочу его настроить и использовать для разграничения работы с памятью, т.е. попытаться защитить код программы, загруженной в SDRAM от любой ее модификации.

Посмотрел примеры, прочитал архитектуру, вроде бы все согласно букварю сделал, однако после включения MMU происходит останов программы (вылет по прерыванию).

Вот каким образом я создаю таблицу для настройки MMU:

Код
#pragma segment="MMU_TT"

#pragma location="MMU_TT"
#pragma data_alignment=16384
__no_init Int32U L1Table[L1_ENTRIES_NUMB];

#pragma location="MMU_TT"
#pragma data_alignment=2048
__no_init Int32U L2CoarseSRAM[L2_CP_ENTRIES_NUMB];

const TtSectionBlock_t TtSB[] =
{
    // L1
    L1_SECTIONS_ENTRY        (1,  0x00000000,0x00000000,0,1,1,0),        // SDRAM mirror, application
    L1_SECTIONS_ENTRY        (31, 0x20100000,0x20100000,3,0,1,1),        // SDRAM, workspace
    L1_SECTIONS_ENTRY        (7,  0x40100000,0x40100000,3,0,0,0),        // Flash storage
    L1_COARSES_PAGE_ENTRY    (1,  0x60000000,(Int32U)L2CoarseSRAM,0),    // SRAM
    L1_SECTIONS_ENTRY        (1,  0xFFF00000,0xFFF00000,3,0,0,0),        // Peripherals
    TSB_INVALID,
    // L2 SRAM
    L2_CT_SMALL_PAGE_ENTRY    (8,  0x60000000,0x60000000,3,3,3,3,0,1),
    TSB_INVALID
};

const TtTableBlock_t TtTB[] =
{
  {L1Table,TableL1},
  {L2CoarseSRAM,TableL2_Coarse},
  TTB_INVALID
};



Кто чем может помочь в этой ситуации?

Заранее благодарен за ответы smile.gif
Eugen79
Все, разобрался.

Надо было убрать строки

Код
#pragma location="MMU_TT"


потому, как компилятор сгенерил код, а линкер поместил его далеко не в сегмент MMU_TT, а в область инициализационных данных.
Т.е. прикол такой - я сформировал таблицу на этапе low_level_init, а потом эту таблицу тупо занулили.
Эфект - не адресуется ничего в системе!

Может кому будет интересно...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.