:::: MENU ::::
Posts tagged with: keil

keil, отладка — симуляция com порта

В Кeil тоже есть окно Serial, доступное при отладке. Вот только отображается в нём только то, что выводится из МК.

Если потребуется увидеть свой ввод, то необходимо реализовать со стороны МК поддержку эха.

P.S. При симуляции СОМ-порт компьютера можно «прикрутить» к ногам UART симулируемого микроконтроллера (команды MODE и ASSIGN) — очень удобно отлаживать взаимодействие программы МК с внешним устройством.

>MODE COM1 9600, 0, 8, 1 /*9600 bps, no parity, 8 data & 1 stop bit */
>ASSIGN COM1 <S1IN >S1OUT /*ASC0 output & input is done with COM2: */
>S1TIME = 0 /*ignore timing of simulated ASC0 interface*/

>ASSIGN // показать все доступные порты

Сигналы (функции) отладки

signal void serialA_Z (void)
{
  char ch;
  for (ch = 'A'; ch < 'Z'; ch++) 
  {
    S1IN = ch; /* Send character */
    twatch (19200);
  } /* Repeat */
}

Можно поставить точку останова по изменению переменной:

BS readwrite test_x==5
BL // лист точек останова
BK // убить нулевую точку останова 

// после 10 раз прохода timer0 вызывает отл. команду MyRegs() 
BS timer0,10,"MyRegs()" 
// пишем по в регистр GPIOB->BSRDL значение 0x40
// для выставления высокого уровня на ножке
BS Write dr==5, 1, "_WBYTE(0x40020418, 0x40)" 

Подробнее в документации keil.


keil, debug prinf viewer, swd, swo

При использовании keil и программатор на swd — можно без остановки программы следить за изменениями переменных и выводить отладочные сообщения в debug printf viewer — это все делается через pin SWO, поэтому не забываем его при разводке платы. Для этого нужно иметь последнюю версию драйверов st-link и правильно настроить keil.

Continue Reading


keil, map-файл и занятая память

В проекте в файле с расширением .map в конце указаны:

Total RO Size (Code + RO Data) 5496 ( 5.37kB)
Total RW Size (RW Data + ZI Data) 10472 ( 10.23kB)
Total ROM Size (Code + RO Data + RW Data) 5572 ( 5.44kB)

Total RW Size — RAM (оперативка) занимаемая программой
Total ROM Size — FLASH занимаемая программой