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

 
 
> СС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
Ответов
vazz
сообщение Dec 30 2013, 19:55
Сообщение #2


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

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



Не могу найти/понять информацию про стек. Вершина ОЗУ находится по адресу 0x1AFF. Когда я записываю в SP адрес, то я должен, к примеру, указать адрес 0x1AFF или младший байт слова по четному адресу 0x1AFE? И если кому не трудно, то дайте ссылку, где это регламентируется.


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


Местный
***

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



Цитата(vazz @ Dec 30 2013, 23:55) *
Не могу найти/понять информацию про стек. Вершина ОЗУ находится по адресу 0x1AFF. Когда я записываю в SP адрес, то я должен, к примеру, указать адрес 0x1AFF или младший байт слова по четному адресу 0x1AFE? И если кому не трудно, то дайте ссылку, где это регламентируется.

Вершина стека (регистр SP) всегда должна иметь четный адрес. Если ты укажешь 0x1AFF - это будет не правильно, так как ты указываешь нечетный адрес. Если ты укажешь 0x1AFE, то это будет правильно, но слово (2 байта) по адресу 0x1AFE никогда стеком занято не будет. Алгоритм "работы" стека, например при вызове функции, такой:
1. Из вершины стека вычитается 2 (SP = SP - 2);
2. По адресу, указанному в вершине стека, записывается адрес возврата.

При выходе из стека происходит все наоборот:
1. По адресу, указанному в вершине стека, читается адрес возврата;
2. К вершине стека прибавляется 2 (SP = SP + 2).

Даже если ты помещаешь в стек один байт (PUSH.B R15), то все равно вершина стека изменяется на 2.

Цитата(vazz @ Dec 31 2013, 01:57) *
А еще непонятны примочки ассемблера типа "NAME main" и "PUBLIC main", что-то Сишным духом больно пахнут. Это вообще обязательно? Без указания PUBLIC тело основного цикла main не будет "видно" остальному коду? И обязательно ли его (main) объявлять с помощью NAME?

Первое. PUBLIC main означает то, что функция main является публичной, то есть должна быть видна в другом модуле. В моем проекте 2 ассемблерных файла. Первый главный. В нем сделан основной цикл программы. В этом цикле выполняются функции, которые реализованы во втором файле. Так вот во втором файле помимо реализации тела функции (например функция Copying), есть строка PUBLIC Copying. А в первом файле есть строка EXTERN Copying, которая означает, что функция Copying является внешней.

Второе. NAME main - это имя модуля. Никакого отношения к функции main NAME не имеет. После NAME можно написать что-то другое (дать другое имя модулю).
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   Цитата(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   А что за расширение файла .inc? Вот ты говоришь, ч...   Dec 31 2013, 15:32
|- - vazz   Цитата(d7d1cd @ Dec 31 2013, 19:32) А что...   Dec 31 2013, 16:05
|- - d7d1cd   Цитата(vazz @ Dec 31 2013, 20:05) Тут не ...   Dec 31 2013, 16:20
||- - vazz   Цитата(d7d1cd @ Dec 31 2013, 20:20) Мне к...   Dec 31 2013, 16:29
||- - 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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