|
Использую MSP430F147 IAR 1.25A
Обновил последним fet_r306u.exe с сайта TI
Не полечил, так как для ассемблера не требуется(а может и ошибаюсь)Прием по опросу бита работает.
А с работой по прерываниям не хочет.
При запуске процессора без отладчика, по приему байта переходит на
сброс.При работе под отладчиком, переходит на первую инструкцию и
при попытке сделать шаг - вываливается по ошибке
"Не могу выполнить один шаг" и Windows закрывает C-Spy
как программу выполнившую недопустимую операцию.Если поставить точку останова на первую команду
по адресу 8000h то при приеме байта в отладчике можно походить
Счетчик PC показывает попеременно адрес 0000 или 0004
И SP уменьшается на слово каждый раз.Создается стойкое впечетление, что намудрил со стеком.
Инициализирую стек:
mov #SFE(CSTACK),SP ; define stackpointerПохоже на правду, для F147 прописывает 0600h
при вызове подпрограмм растет вниз на слово 05FEh
вызове прерывания на два 05FСh.Обработку прерывания свел к двум командам
UART0RX_ISR:
DINT
reti
Вектора расположил тоже вроде правильно.COMMON INTVEC ; Interrupt vectors
org UART0TX_VECTOR ; USART 0 Transmit */
dw UART0TX_ISR
org UART0RX_VECTOR ; USART 0 Receive */
dw UART0RX_ISRВ начале программы запрещаю все прерывания
а затем разрешаю, только от Приемного буфера
bic.b #0FFh,&IE1
bic.b #0FFh,&IE2
Подозрительно что после очистки IE1 и IE2
Пошагово проверяю, что все сброшено:
mov.b &IE1, temp ; действительно 00
mov.b &IE2, temp ; почему-то 01Лечить IAR, или меня?
То ли пойти пить пиво, ошибку в генах ведь не не исправить ;-)Спаcибо за внимание.
E-mail: info@telesys.ru