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

 
 
> СС430F5137 с нуля на asm, нужна помощь
vazz
сообщение Feb 23 2013, 14:07
Сообщение #1


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

Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971



Приобрел EM430F5137RF900 и MSP-FET430UIF, до приобретения особо не заморачивался с подготовкой "рабочего пространства" под новый проект, вроде бы камни не особенно новые, часто встречал различную информацию о них и не думал, что доставабельностью нужной для начала разработки инфы возникнут проблемы. Пол дня поискал в сети примеры заголовочных файлов под этот камень, примеры инициализации периферии, увы - результат 0. Это такой секрет? Такие данные достаются потом и кровью? Раньше работал с AVR (да и продолжаю время от времени), никаких таких проблем не помню, все было как-то проще достать и среда разработки нормальная (и бесплатная). Бог с ней со средой, поставил IAR KS на 4кБ кода (мне для попробовать). С самим ассемблером MSP и системой команд ознакомился поверхностно, страха не вызвал, вроде бы все просто (по крайней мере помигать светодиодом для начала - понятно как, а особенности и "камни" по ходу дела разберу). Стандартный заголовочный файл, который есть в папке иара "\inc" при пустом проекте вызывает негодование у компилятора IAR (дублирование лэйблов в объявлении регистров DMA). Попытался найти нормальный заголовочный файл в сети - нашел лишь такой же, "замазал" все места вызывающие негатив комментариями, чтобы не было ошибок. Далее попытался найти файл, который инициализировал бы мне всю периферию - тут все и загнулось. Я понимаю, что скорее всего при запуске МК все отключает сам и морганию светодиодом врядли что-то помешает, но хотелось бы иметь заготовку с полной инициализацией всех узлов МК ну и ессно полную таблицу векторов прерываний воткнуть в начало. Это добавляет уверенности в дальнейшем освоении камня. В отладчике иара тож пока особо не разобрался, если честно с первого раза иар вроде показался "классическим" средством разработки с простым и понятным интерфейсом, как начал лезть глубже - начало казаться, что первое впечатление обманчиво, чувство "чего-то не хватает" не покидает - ну к примеру как мне для отладчика задать тип МК, частоту кварца (чтоб время выполения отслеживать), также не нашел средства для заливки прошивки в МК (нужно отдельным ПО для этого ввоспользоваться чтоли?!). Прошу извинить за смешивание всего в кучу - помогите найти (или разобраться) с заголовочный файл для ассемблера под этот МК, файл инициализации всех устройств на борту, ну и вектора прерываний до кучи. На Си для МК не программирую и не особо горю желанием.


--------------------
Не так страшна автоматизация, как её малюют.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
d7d1cd
сообщение Dec 31 2013, 15:32
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



А что за расширение файла .inc? Вот ты говоришь, что использовать PUBLIC, EXTERN и прочее - это захламление проекта. А числовые константы описывать как то так #b'01000000 это норма? Это первое. Второе: вставлять директиву include посреди кода - это со стороны смотрится... а точнее не смотрится вообще никак.
Ты уверен, что правильно указываешь вершину стека 0х23FE? У тебя адрес 0х23FE стеком занят не будет никогда. Про таблицу векторов прерываний: зачем вставляешь команду NOP? По поводу обработки немаскируемых прерываний: открываешь даташит на микроконтроллер и смотришь что может быть источником немаскируемого прерывания. Так же тебе надо изучить сигналы POR и PUC микроконтроллера.
Я думаю, что немаскируемое прерывание не может заканчиваться командой RETI. Ведь после этой команды процессор должен продолжить выполнение прерванного кода, но этот код (скорее всего) вызвал немаскируемое прерывание. В обработчике немаскируемого прерывания можно определить что вызвало его, в зависимости от этого (если надо) выполнить какой-то код (допустим сохранить данные в МС) и перезагрузить программу.
Go to the top of the page
 
+Quote Post
vazz
сообщение Dec 31 2013, 16:05
Сообщение #3


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

Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971



Цитата(d7d1cd @ Dec 31 2013, 19:32) *
А что за расширение файла .inc?


Привычка с прошлых проектов на других МК (уже и не помню когда первый раз такое расширение применил и почему)

Цитата(d7d1cd @ Dec 31 2013, 19:32) *
А числовые константы описывать как то так #b'01000000 это норма? Это первое.


Тут как бы согласен, сам я так никогда числа не писал, но в IAR -> Assembler User Guide указано следующее:

Цитата
The following types of number representation are supported:

Integer type Example

Binary 1010b, b'1010
Octal 1234q, q'1234
Decimal 1234, -1, d'1234
Hexadecimal 0FFFFh, 0xFFFF, h'FFFF


Если из этих вариантов исключить привычное 0xFFFF, то для унификации применяеть суффикс системы исчисления либо в начале "<suf>'" либо в конце "XXXX<suf>". Но, к примеру если шестнадцатиричное число равно FFFF, то его надо записывать либо h'FFFF, либо 0FFFFh. Короче из-за добавления нуля ("ассоциируется" с заимствованием дополнительного байта, которого нет) мои рельсы съехали в сторону суффикса с апострофом. Короче это личный бзик в мозгу.

Цитата( @ Dec 31 2013, 19:32) *
Второе: вставлять директиву include посреди кода - это со стороны смотрится... а точнее не смотрится вообще никак.


Хм... ну не знаю что лучше - перегружать основной файл проекта всякими векторами и данными о версии ПО или аккуратно вставить эти процедуры и данные в то место памяти, где им самое место... Без обид, на вкус и цвет как говорится.

Цитата(d7d1cd @ Dec 31 2013, 19:32) *
Ты уверен, что правильно указываешь вершину стека 0х23FE? У тебя адрес 0х23FE стеком занят не будет никогда.


Это я понял, что одно слово между стеком и остальной памятью будет пустовать, пусть пока так, главное на этапе экспериментов то, что "не заползает ни на кого". Марафет вплоть до байта - позже, когда уверенно буду "рулить" этим камнем.

Цитата(d7d1cd @ Dec 31 2013, 19:32) *
Про таблицу векторов прерываний: зачем вставляешь команду NOP?


Тоже пока затрудняюсь объяснить wink.gif

Цитата(d7d1cd @ Dec 31 2013, 19:32) *
По поводу обработки немаскируемых прерываний: открываешь даташит на микроконтроллер и смотришь что может быть источником немаскируемого прерывания.


Ты прав конечно.

Цитата(d7d1cd @ Dec 31 2013, 19:32) *
Так же тебе надо изучить сигналы POR и PUC микроконтроллера.


И с системой сброса и с системой организации питания - первым делом, как без этого.

Цитата(d7d1cd @ Dec 31 2013, 19:32) *
Я думаю, что немаскируемое прерывание не может заканчиваться командой RETI. Ведь после этой команды процессор должен продолжить выполнение прерванного кода, но этот код (скорее всего) вызвал немаскируемое прерывание.


Тут не уверен я. Думается, в стек при немаскируемом прерывании записывается адрес возврата, поэтому без RETI не обойтись. Покопаю про это поподробнее.

Цитата(d7d1cd @ Dec 31 2013, 19:32) *
В обработчике немаскируемого прерывания можно определить что вызвало его, в зависимости от этого (если надо) выполнить какой-то код (допустим сохранить данные в МС) и перезагрузить программу.


Эт да.. Самое приятное анализировать, когда азы уже прочно усвоены, а нубовские ошибки - редкое исключение. Скорее бы уже дойти до этого состояния)


--------------------
Не так страшна автоматизация, как её малюют.
Go to the top of the page
 
+Quote Post
d7d1cd
сообщение Dec 31 2013, 16:20
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 442
Регистрация: 26-11-10
Пользователь №: 61 199



Цитата(vazz @ Dec 31 2013, 20:05) *
Тут не уверен я. Думается, в стек при немаскируемом прерывании записывается адрес возврата, поэтому без RETI не обойтись. Покопаю про это поподробнее.

Зачем тебе возвращаться из немаскируемого прерывания? Мне кажется тут один путь - начать выполнение программы с вектора сброса.
Go to the top of the page
 
+Quote Post
vazz
сообщение Dec 31 2013, 16:29
Сообщение #5


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

Группа: Участник
Сообщений: 189
Регистрация: 21-01-10
Пользователь №: 54 971



Цитата(d7d1cd @ Dec 31 2013, 20:20) *
Мне кажется тут один путь - начать выполнение программы с вектора сброса.


Ну если возникновение немаскируемого прерывания свидетельствует ТОЛЬКО о каком-либо сбое в работе МК, причем этот сбой может привести к непредсказуемой работе (в т.ч. "зависанию"), то да - тут только возврат в исходную точку, начиная с начальных предустановок и пр. Но я ж пока не знаю все случаи когда возникает немаскируемое прерывание. Кстати, а почему немаскируемое? (стыдно конечно) Потому что оно возникает независимо от состояния бита глобального разрешения прерываний (GIE)?


--------------------
Не так страшна автоматизация, как её малюют.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- vazz   СС430F5137 с нуля на asm   Feb 23 2013, 14:07
- - rezident   Цитата(vazz @ Feb 23 2013, 19:07) Стандар...   Feb 23 2013, 20:03
- - vazz   Благодарю за напутственные пояснения, наконец-то п...   Dec 28 2013, 14:12
- - rx3apf   "#" - непосредственный операнд, если зна...   Dec 28 2013, 14:33
- - vazz   А правда то, что ограничение 4кБ IAR Kickstart отн...   Dec 28 2013, 17:31
|- - d7d1cd   Цитата(vazz @ Dec 28 2013, 21:31) А правд...   Dec 28 2013, 17:32
|- - vazz   Цитата(d7d1cd @ Dec 28 2013, 21:32) Вроде...   Dec 29 2013, 11:55
|- - d7d1cd   Цитата(vazz @ Dec 29 2013, 15:55) Я пока ...   Dec 29 2013, 14:21
- - vazz   Почитал о режимах адресации, впринципе все понятно...   Dec 29 2013, 09:47
|- - d7d1cd   Цитата(vazz @ Dec 29 2013, 13:47) Почитал...   Dec 29 2013, 11:39
- - vazz   Не могу найти/понять информацию про стек. Вершина ...   Dec 30 2013, 19:55
|- - d7d1cd   Цитата(vazz @ Dec 30 2013, 23:55) Не могу...   Dec 31 2013, 06:25
|- - vazz   Цитата(d7d1cd @ Dec 31 2013, 10:25) Перво...   Dec 31 2013, 10:13
|- - d7d1cd   Цитата(vazz @ Dec 31 2013, 14:13) Про сте...   Dec 31 2013, 13:38
|- - vazz   Цитата(d7d1cd @ Dec 31 2013, 17:38) и буд...   Dec 31 2013, 14:52
- - vazz   А еще непонятны примочки ассемблера типа "NAM...   Dec 30 2013, 21:57
||- - d7d1cd   Цитата(vazz @ Dec 31 2013, 20:29) Кстати,...   Dec 31 2013, 20:11
|- - SM   Цитата(vazz @ Dec 31 2013, 20:05) Хм... н...   Jan 1 2014, 09:36
|- - vazz   Цитата(SM @ Jan 1 2014, 13:36) public/ext...   Jan 1 2014, 10:14
|- - d7d1cd   Цитата(vazz @ Jan 1 2014, 14:14) Благодар...   Jan 1 2014, 10:52
|- - SM   Цитата(vazz @ Jan 1 2014, 14:14) Благодар...   Jan 1 2014, 13:34
- - vazz   По мере разбирательства пытаюсь читать CC430 Users...   Jan 2 2014, 19:21
|- - rezident   Цитата(vazz @ Jan 3 2014, 00:21) Про MCLK...   Jan 2 2014, 20:03
|- - vazz   Цитата(rezident @ Jan 3 2014, 00:03) Поче...   Jan 2 2014, 22:09
|- - rezident   Цитата(vazz @ Jan 3 2014, 03:09) Не, я им...   Jan 3 2014, 17:03
- - vazz   IAR почему-то ругается на команду CMP.B по отношен...   Jan 3 2014, 19:03
- - vazz   Господин rezident, немного наслышан о тебе, как об...   Jan 3 2014, 20:37
|- - d7d1cd   Цитата(vazz @ Jan 4 2014, 00:37) Господин...   Jan 4 2014, 08:59
||- - vazz   Цитата(d7d1cd @ Jan 4 2014, 12:59) Я знаю...   Jan 4 2014, 10:02
|- - rezident   Цитата(vazz @ Jan 4 2014, 01:37) можно ли...   Jan 4 2014, 15:19
- - d7d1cd   vazz, можно, как ты говоришь, оффтоп... Ты пишешь ...   Jan 4 2014, 10:39
|- - vazz   Цитата(d7d1cd @ Jan 4 2014, 14:39) Чтобы ...   Jan 4 2014, 11:48
|- - d7d1cd   Цитата(vazz @ Jan 4 2014, 15:48) Наверное...   Jan 4 2014, 12:19
|- - vazz   Цитата(d7d1cd @ Jan 4 2014, 16:19) Как то...   Jan 4 2014, 16:33
||- - rezident   Цитата(vazz @ Jan 4 2014, 21:08) а вот пр...   Jan 4 2014, 16:48
||- - vazz   Цитата(rezident @ Jan 4 2014, 20:48) сраз...   Jan 4 2014, 17:12
|- - SM   Цитата(d7d1cd @ Jan 4 2014, 16:19) А для ...   Jan 4 2014, 16:45
|- - d7d1cd   Цитата(SM @ Jan 4 2014, 20:45) Объявить е...   Jan 4 2014, 17:14
- - SM   У меня сейчас IAR не установлен под 430. так что с...   Jan 4 2014, 17:36
|- - d7d1cd   Цитата(SM @ Jan 4 2014, 21:36) У меня сей...   Jan 4 2014, 17:50
- - SM   Какая же это ошибка. Доступ к любому отдельному ба...   Jan 4 2014, 18:00
|- - d7d1cd   Цитата(SM @ Jan 4 2014, 22:00) Какая же э...   Jan 4 2014, 18:04
|- - SM   Цитата(d7d1cd @ Jan 4 2014, 22:04) однако...   Jan 4 2014, 18:15
|- - d7d1cd   Спасибо за помощь. Но все таки есть метод, позволя...   Jan 5 2014, 11:58
|- - SM   Цитата(d7d1cd @ Jan 5 2014, 15:58) Увы, I...   Jan 5 2014, 12:12
||- - d7d1cd   Цитата(SM @ Jan 5 2014, 16:12) ...особенн...   Jan 5 2014, 13:08
||- - SM   Цитата(d7d1cd @ Jan 5 2014, 17:08) Бывают...   Jan 5 2014, 13:20
||- - vazz   Цитата(SM @ Jan 5 2014, 17:20) да-да. там...   Jan 5 2014, 13:51
||- - SM   Цитата(vazz @ Jan 5 2014, 17:40) Замостил...   Jan 5 2014, 13:54
||- - vazz   Цитата(SM @ Jan 5 2014, 17:54) И Вы до си...   Jan 5 2014, 14:16
|- - vazz   Цитата(d7d1cd @ Jan 5 2014, 15:58) Был ту...   Jan 5 2014, 13:17
- - vazz   А у меня еще один интересный вопрос: можно ли как-...   Jan 4 2014, 18:59
- - SM   А вот это ищите в даташите. В некоторых MSP430 ест...   Jan 4 2014, 19:07
- - d7d1cd   Смотрите как я получил ограничение. Я создал шабло...   Jan 5 2014, 14:24
- - SM   Это они что-то поднамутили более свежего... Раньше...   Jan 5 2014, 14:30
- - vazz   Замостил связкой: КодJMP $ NOP Пространст...   Jan 5 2014, 14:32
- - vazz   То ли лыжи, то ли пол третьего ночи... Часовой ква...   Jan 5 2014, 22:43
|- - rezident   Цитата(vazz @ Jan 6 2014, 03:43) в регист...   Jan 6 2014, 05:55
- - vazz   Короче все запускается, оказывается помимо PxSEL н...   Jan 6 2014, 08:56
|- - rezident   Цитата(vazz @ Jan 6 2014, 13:56) Короче в...   Jan 6 2014, 09:16
|- - vazz   Цитата(rezident @ Jan 6 2014, 13:16) ... ...   Jan 6 2014, 09:28
|- - rezident   Цитата(vazz @ Jan 6 2014, 14:28) Поэтому ...   Jan 6 2014, 13:04
|- - vazz   Цитата(rezident @ Jan 6 2014, 17:04) вы б...   Jan 6 2014, 13:36
|- - rezident   Цитата(vazz @ Jan 6 2014, 18:26) Уверен, ...   Jan 6 2014, 13:43
|- - vazz   Честно говоря я уже погрузился в Unified Clock Sys...   Jan 6 2014, 14:55
- - vazz   А можно мне совет? Я что-то зря с этим XT1 походу...   Jan 6 2014, 20:47
- - rezident   Ну если вам на потребление начхать и 60мкА DCO vs ...   Jan 7 2014, 11:20


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

 


RSS Текстовая версия Сейчас: 20th August 2025 - 03:59
Рейтинг@Mail.ru


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