Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2017-сен-22 14:45

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Проблема с симуляцией MDR32 KEIL *vision4
СообщениеДобавлено: 2014-фев-05 14:34 
Не в сети

Зарегистрирован: 2014-фев-05 11:36
Сообщения: 6
В порядке освоение новой техники приобрел плату LDM-K1986BE92QI.
Взял за основу программу LED из прилагаемого к плате CD и в среде KEIL слегка ее изменил,
чтобы зажигалось 2 светодиода, каждый от своей кнопки, причем VD5 включается через Bit-Band. (см текст прог. ниже).
При сборке проекта потребовалось подключить кучу файлов, что и было сделано.
В результате проект собрался, файл *.hex получился, заливка прошла успешно и программа в натуре заработала.

НО! Симулятор KEIL не работает. При запуске симуляции в R13,14,15 пишется явное не то,
следует сообщение
*** error 65: access violation at 0xFFFFFFF4 : no 'write' permission
и далее ничего не происходит.
При этом программы из примеров с нерусскими микроконтроллерами прекрасно себе симулируются.

Помогите разобраться, что не так.

Текст программы:

#include <C:\Keil\Milandr\1986\1986be91.h>
#define SW4 (1<<3)
#define SW3 (1<<1)
#define LAMP_VD5 (1<<0)
#define LAMP_VD4 (1<<1)
#define MDR_PORTB ((_port*) BASE_PORTB)
#define MDR_PORTE ((_port*) BASE_PORTE)
#define MDR_RST_CLK ((_rst_clk*) BASE_RST_CLK)
#define PB0 (*((volatile unsigned long *) 0x43600000 ))
#define PE1 (*((volatile unsigned long *) 0x43900004 ))

int main ()
{
MDR_RST_CLK->PER_CLOCK = 0xFFFFFFFF;
MDR_PORTE->OE = 0;
MDR_PORTE->FUNC = 0;
MDR_PORTE->ANALOG = 0x0000FFFF;
MDR_PORTE->PULL = 0;
MDR_PORTE->PD = SW4 << 16;
MDR_PORTE->PD |= SW3 << 16;

MDR_PORTB->OE = LAMP_VD4;
MDR_PORTB->OE |= LAMP_VD5;
MDR_PORTB->FUNC = 0;
MDR_PORTB->ANALOG = 0x0000FFFF;
MDR_PORTB->PD = 0;
MDR_PORTB->PWR = 0x55555555;

QQ: PB0=~PE1;

if (~MDR_PORTE->RXTX & SW4)
{ MDR_PORTB->RXTX |= LAMP_VD4 ;
}
else MDR_PORTB->RXTX &= ~LAMP_VD4;
goto QQ;
}


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-фев-05 16:11 
Не в сети

Зарегистрирован: 2010-сен-21 12:57
Сообщения: 613
Откуда: г. Санкт-Петербург
Симуляция не работает из - за отсутсвия в проекте кода бутового пзу. При симуляции ядра старт начинается с загрузки R13 и PC из таблицы векторов по адресу 0х0, а не 0х08000000.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-фев-08 20:35 
Не в сети

Зарегистрирован: 2014-фев-05 11:36
Сообщения: 6
Спасибо за подсказку. Но все-таки, если нетрудно, сообщите, где конкретно надо править и как?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-фев-08 21:08 
Не в сети

Зарегистрирован: 2010-сен-21 12:57
Сообщения: 613
Откуда: г. Санкт-Петербург
Самое простое - указать в настройках проекта (вкладка target IROM1) начальный адрес 0х0 вместо 0х08000000. При этом будет невозможна реальная отладка. Также могут быть проблемы в симуляции при обращении к регистрам периферии. При этом можно область периферии отразить на область R/W(например вкладка target IRAM2). В этом случае симуляцию реальной работы периферии реализовать не получиться. Как ее организовать не знаю. Сам использовал только симуляцию ядра при отладке "математики".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2014-фев-11 21:41 
Не в сети

Зарегистрирован: 2014-фев-05 11:36
Сообщения: 6
Еще раз спасибо. Помогло, но частично. Если записать в Target IROM2 0x0, Size 0x800, и поставить точку в Startup в этой строке, симулятор начинает работать, но затыкается теперь с адреса 0x4002001C.
Изменения в Target IRAM2 не помогают.
Зато если при работе в симуляторе отрыть вкладку DEBUG - Memory Map, там обнаружится
конфигурация памяти, не соответствующая реальному K1986BE9...
Ее можно привести в соответствие. Симулятор заработает.
Однако, изменения Memory Map при выходе из симулятора не сохраняются, что крайне неудобно. Если взять проект из примеров с другим микроконтроллером, то запись в Memory Map изменится.
Значит, конфигурация памяти записана в где-то в исходном проекте. Но в явном виде я этого не нашел.
Войну с симулятором Keil временно останавливаю-не до него.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB