реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Прерывания в tms470r1b1m
k_george
сообщение Nov 16 2007, 12:04
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 23-06-04
Из: г. Рязань
Пользователь №: 131



Люди добрые, подскажите где засада ? help.gif help.gif help.gif
Суть проблемы: CrossWorks -> Вигглер -> tms470r1b1m в бесконечных циклах работает без проблем:
RAM, FLASH в долбаггере и со сброса. Как только разрешаю IRQ (таймер нужен), так пошли чудеса: под житагом всё нормалёк даже если и компилил без отладочной информации - шагает, запускается, останавливается, но после сброса (питание, кнопка) программа начинает перезапускаться по таймеру как по сбросу, хотя все вектора вроде живы (вывожу на экран). Было подозрение на WatchDog? но в SYSESR о нём ничего нет и вообще там только PORRST. Отсюда следующие вопросы:

1. В чём у сабжа разница запуска по житагу и по сбросу(про WatchDog знаю)?
2. Кто ещё может вызвать перезапуск (не в SYSESR)?
2. Может кто santa2.gif поделится проетом с работающим таймером?
Go to the top of the page
 
+Quote Post
IV_K
сообщение Nov 17 2007, 12:50
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



вобщем была похожая фигня.. методом научного тыка убрал заменой команд LDR на B в cstartup (переходы на обработчики исключений), это было под 4-м иаром. при переходе на 5-й опять наступил на эти грабли, но линкер не переваривает перестановки LDR на B.. придется копать глубже..
Go to the top of the page
 
+Quote Post
k_george
сообщение Nov 19 2007, 06:27
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 23-06-04
Из: г. Рязань
Пользователь №: 131



А как оно вааще с иаром - у меня совсем плохо: даже с простыми examl'ами брешет на cable & power и при всём том чётко определяет id девайса(с 256-м процом такого нет). Пробовал менять распределение памяти(как CW) теже яйца... cranky.gif
Go to the top of the page
 
+Quote Post
IV_K
сообщение Nov 19 2007, 09:52
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



иар+мт-линк+тмс 470 b1m,a288,a384 полет нормальный. но бывают затыки, которые удается все-таки обойти.
Go to the top of the page
 
+Quote Post
k_george
сообщение Nov 19 2007, 12:03
Сообщение #5


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 23-06-04
Из: г. Рязань
Пользователь №: 131



Как я понянл - слабое звено здесь Wiggler -> TMS. Без МТлинка не жисть? или всё же как-то можно выкрутиться?
Go to the top of the page
 
+Quote Post
IV_K
сообщение Nov 19 2007, 12:26
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



cable & power - это имхо косяк виглера или платы с тмс-ом.. с мтлинком у меня такого нет.. как у вас там с ножками тмс-а TRST, RST и PORRST? как подключены? PORRST и TRST идут на житаг, при инициализации по ним должны быть импульсы, у меня косяки были похожие, когда PORRST отвалилась..

З.Ы. еще ногу AWD резистором в землю нужно
Go to the top of the page
 
+Quote Post
k_george
сообщение Nov 19 2007, 13:38
Сообщение #7


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 23-06-04
Из: г. Рязань
Пользователь №: 131



Плату я делал а ля TI и Olimex: ~TRST и ~RST на житаге присутствуют, хотя сигналов на какой-то одной(какой не помню) нет; AWD с джампером, но ведь же CW всё грузит, жжёт и отлаживает. А вот про PORST просил бы по подробнее - у меня на неё RESET от TPS'а заведён, а ещё её куда?
Go to the top of the page
 
+Quote Post
IV_K
сообщение Nov 19 2007, 14:07
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



у меня RST просто к VCC притянут, а с супервизора и rst житага на PORRST идет.
Go to the top of the page
 
+Quote Post
IV_K
сообщение Nov 19 2007, 15:38
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



чудеса мля... из флеши начинает работать ТОЛЬКО при использовании с нулевого адреса команды B.. LDR ему не катит..
с прерыванием та же фигня.. LDR PC,IRQ_Addr ему не нравится, а вот B IRQ_Addr работает!!!

похоже этот проц до инициализации карты памяти НЕ МОЖЕТ выполнить команду, в которой используется адрес вне поля команды.. =(( афигеть.. а житаг в нем карту памяти инитит, других вариантов у меня нет..
Go to the top of the page
 
+Quote Post
k_george
сообщение Nov 20 2007, 07:35
Сообщение #10


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 23-06-04
Из: г. Рязань
Пользователь №: 131



Если можно поподробнее пжалуйста, осбенно с того момента где и как оно работает (хорошо бы пример) - у меня это первый опыт с uM и С. Тупая замена LDR PC,IRQ_Addr на B IRQ_Addr дала чистого мертвяка - летает по всей памяти, а вот при LDR для вектора 0x0 с кнопки не запускается.
Замена ~RST на ~PORRST в житаге не помогла: IAR перестала определять ID; H_JTAG как не видел так и не видит, а CW работает как работала. Похоже дело здесь не в железе а в конкретных дровах. Завтра попробую на 256-м - он дома.
Go to the top of the page
 
+Quote Post
IV_K
сообщение Nov 20 2007, 08:58
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



вот этот пример работает из флеши, прерывания есть, переделан cstartup
Прикрепленные файлы
Прикрепленный файл  FlashingLight.rar ( 35.35 килобайт ) Кол-во скачиваний: 34
 
Go to the top of the page
 
+Quote Post
k_george
сообщение Nov 20 2007, 11:22
Сообщение #12


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 23-06-04
Из: г. Рязань
Пользователь №: 131



Проблема решена добавлением в старап след. кода:

// Read the MSM keys
ldr r1, =0x1000FFE0
ldr r0, [r1, #0x00]
ldr r0, [r1, #0x04]
ldr r0, [r1, #0x08]
ldr r0, [r1, #0x0C]

найдено методом комментирования инструкций в JTAG-скрипте:

/******************************************************************************
Target Script for TMS470R1B1M.

Copyright © 2006 Rowley Associates Limited.

This file may be distributed under the terms of the License Agreement
provided with this software.

THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE
WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
******************************************************************************/

function Reset()
{
TargetInterface.stopAndReset(1);

// Disable reset on address access violation
TargetInterface.pokeWord(0xFFFFFFE0, 0x00004007); // SYSECR

// Map internal SRAM (bank 2) to 0x10300000
TargetInterface.pokeWord(0xFFFFFE10, 0x00001030); // MFBAHR2
TargetInterface.pokeWord(0xFFFFFE14, 0x00000080); // MFBALR2

// Duplicate internal SRAM (bank 3) at 0x00000000
TargetInterface.pokeWord(0xFFFFFE18, 0x00000000); // MFBAHR3
TargetInterface.pokeWord(0xFFFFFE1C, 0x00000080); // MFBALR3

// Configure HET RAM static memory controller (32-bit, 7 wait states)
TargetInterface.pokeWord(0xFFFFFD04, 0x00000072); // SMCR1

// Map HET RAM (bank 4) to 0x10800000
TargetInterface.pokeWord(0xFFFFFE20, 0x00001080); // MFBAHR4
TargetInterface.pokeWord(0xFFFFFE24, 0x00000020); // MFBALR4

/* Enable write buffer and write trailing wait state override */
TargetInterface.pokeWord(0xFFFFFD2C, 0x00000003); // WCR0

// Disable FLASH (bank 1)
TargetInterface.pokeWord(0xFFFFFE08, 0x00000000); // MFBAHR1
TargetInterface.pokeWord(0xFFFFFE0C, 0x00000000); // MFBALR1

// Map internal FLASH (bank 0) to 0x10000000
TargetInterface.pokeWord(0xFFFFFE00, 0x00001000); // MFBAHR0
TargetInterface.pokeWord(0xFFFFFE04, 0x000001c2); // MFBALR0

// Read the MSM keys
// TargetInterface.peekWord(0x1000FFE0);
// TargetInterface.peekWord(0x1000FFE4);
// TargetInterface.peekWord(0x1000FFE8);
// TargetInterface.peekWord(0x1000FFEc);
}

function RAMReset()
{
Reset();
}

function FLASHReset()
{
Reset();
}




Онако гемора с IAR -> Wiggjer -> 1B1M это не решило. 01.gif Что ж будем воевать в CrossWorks.
Go to the top of the page
 
+Quote Post
IV_K
сообщение Nov 20 2007, 12:32
Сообщение #13


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



с добавлением куда именно? я вставил после метки ctartup - не помогло..
Go to the top of the page
 
+Quote Post
k_george
сообщение Nov 20 2007, 13:22
Сообщение #14


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 23-06-04
Из: г. Рязань
Пользователь №: 131



Проект у меня собссно CrossWork'овский - стартап там побольше + TMS470.c для перываний + clt0.c для управления библиотеками, а вместо самого стартапа (TMS470_Startup.s) я держу его копию system.s чтобы можно было править. Так вот добавка в ней после инита катры памяти и перед вызовом настройщика библиотек clt0.c.
Go to the top of the page
 
+Quote Post
IV_K
сообщение Nov 20 2007, 13:49
Сообщение #15


Частый гость
**

Группа: Свой
Сообщений: 121
Регистрация: 17-06-05
Пользователь №: 6 087



в иаре у меня есть чтение MSM, как раз после настройки карты памяти, но в сишном файле в __low_level_init()
попробую я перенести это все в асмовый стартап..
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st August 2025 - 22:49
Рейтинг@Mail.ru


Страница сгенерированна за 0.01458 секунд с 7
ELECTRONIX ©2004-2016