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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Работа на MSP430, Среды разработки
sonycman
сообщение Nov 17 2013, 11:47
Сообщение #16


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(SSerge @ Nov 17 2013, 15:31) *
Не замечал, код вполне приличный.
Чтобы на такой архитектуре как MSP сгенерировать неоптимальный код - это надо талант иметь и долго учиться wink.gif

Ясно, спасибо, буду пробовать!

Цитата(rezident @ Nov 5 2013, 20:00) *
В удобстве управления тактированием ядра/периферии и режимами перехода из спячки в работу и обратно. В MSP430 мне лично только 32-х разрядных таймеров (точнее 32-х разрядных capture) не хватает.

Ну не так уж и удобно с переходом из спячки и обратно, на первый взгляд. К примеру, устройству необходимо "уснуть" на 10 минут - на девайсах Value Line запрограммировать выход из спячки LPM3 по таймеру возможно только используя ватчдог, с учётом его 16 бит и частоты Low Power RC генератора в 12 кГц получаем максимальное время спячки в 20 секунд. Маловато будет.
На новых LPC800 для этого есть 32 битный WKT, дающий гораздо более гибкую настройку.
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 17 2013, 20:58
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(sonycman @ Nov 17 2013, 16:47) *
Ну не так уж и удобно с переходом из спячки и обратно, на первый взгляд. К примеру, устройству необходимо "уснуть" на 10 минут - на девайсах Value Line запрограммировать выход из спячки LPM3 по таймеру возможно только используя ватчдог, с учётом его 16 бит и частоты Low Power RC генератора в 12 кГц получаем максимальное время спячки в 20 секунд. Маловато будет.
На новых LPC800 для этого есть 32 битный WKT, дающий гораздо более гибкую настройку.

Надуманная проблема. laughing.gif Во-первых, кроме WDT есть еще и TimerA. Во-вторых, а кто мешает просыпаться по переполнению таймера и программно проверять окончание временной паузы в течение этих 10 минут? При тактировании от того же VLO при каждом просыпании, проверка (вход в прерывание, сравнение, выход в спячку) займет порядка 30 тактов или около 2,5мс. Причем потреблять в активном режиме MSP430 в это время будет аж целых 5мкА вместо (максимум) 0.7мкА@25°C в режиме LPM3. Это конечно ужас, но ведь не ужас-ужас-ужас, не так ли? biggrin.gif
Go to the top of the page
 
+Quote Post
Myron
сообщение Nov 17 2013, 23:09
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 849
Регистрация: 6-02-05
Пользователь №: 2 451



Цитата(aBoomest @ Oct 31 2013, 06:04) *
Собрался распробовать MSP430

Может кто-либо дать ссылки на схемы перепрограммирования MSP430 через USB (MSP430 с USB) а не через JTAG для того, чтобы заложить на плату?
Go to the top of the page
 
+Quote Post
sonycman
сообщение Nov 18 2013, 09:40
Сообщение #19


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Цитата(rezident @ Nov 18 2013, 00:58) *
Надуманная проблема. laughing.gif Во-первых, кроме WDT есть еще и TimerA.

Проблема не большая, согласен.
Но таймер тоже 16 битный, поэтому выдержка будет лишь в два раза больше - около 40 секунд.
Мало, мало, мало... laughing.gif

Цитата(rezident @ Nov 18 2013, 00:58) *
кто мешает просыпаться по переполнению таймера и программно проверять окончание временной паузы в течение этих 10 минут?

Так и придётся делать, это понятно.

После того, как попробуешь все прелести 32 бит, даже на 16 становится тесновато... sm.gif
Go to the top of the page
 
+Quote Post
rezident
сообщение Nov 18 2013, 11:09
Сообщение #20


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Myron @ Nov 18 2013, 04:09) *
Может кто-либо дать ссылки на схемы перепрограммирования MSP430 через USB (MSP430 с USB) а не через JTAG для того, чтобы заложить на плату?

В соседнем топике обсуждается эта тема http://electronix.ru/forum/index.php?showtopic=116844

Цитата(sonycman @ Nov 18 2013, 14:40) *
После того, как попробуешь все прелести 32 бит, даже на 16 становится тесновато... sm.gif
Аналогично, как и 16 после 8-битников. laughing.gif
Go to the top of the page
 
+Quote Post
aBoomest
сообщение Jan 12 2014, 17:41
Сообщение #21


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

Группа: Участник
Сообщений: 167
Регистрация: 24-12-08
Из: Россия
Пользователь №: 42 714



Всем привет.
1. Какой файл проекта CCS является прошивкой для MSP430?
Есть ли программные средства чтобы просто загрузить файл прошивки в память МК (без среды разработки CCS)?

2. Как очистить память программ в CCS?
Допустим я загрузил в микроконтроллер программу. Она будет там "сидеть" до тех пор пока я не запишу туда другую новую программу на место этой. А можно ли удалить "все" из микросхемы? В каком мануале можно почитать о "внутренностях" процесса прошивки?

3. В одном из примеров от TI увидел в коде ф-цию _delay_cycles(). Вставил в свой код. Работает?! Где определена эта функция?
Встречал в примерах функции __bis_sr_register(). В чем её отличия от функции __bis_sr()?
Читал что __bis_sr_register(GIE) эквивалентно _enable_interrupt(). Зачем их две, выполняющие одно и то же?
В чем отличие функций у которых перед именем одно подчеркивание (_) от функций в имени которых два подчеркивания (__) ?
Где взять описания всех этих функций?

И все функции, они работают, хотя в *.h файлах я их не нашел. Где это все определено?

4. Где вообще можно почитать о написании кода для MSP 430 на СИ. В мануалах про сам контроллер написано хорошо но там асм, а вот что делать с СИ - не совсем понятно. Учиться чисто на примерах из сети - как-то странновато (может это и на первый взгляд, раньше на ассемблере писал).

Одним словом прошу помощи в информации!!!


--------------------
C уважением!
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 12 2014, 19:03
Сообщение #22


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(aBoomest @ Jan 12 2014, 22:41) *
1. Какой файл проекта CCS является прошивкой для MSP430?

Учимся самостоятельно добывать нужную информацию. Показываю пример того, как это делается.
- Идем на сайт TI: http://www.ti.com/
- Вводим в строку поиска ключевое слово "CCS"
- Переходим по результатам поиска на страничку продукта Code Composer Studio IDE - Integrated Development Environment, а там к абзацу Technical Documents
- Ищем в списке документов руководство по программированию в среде CCS на Си в применении именно к MSP430 MSP430 Optimizing C/C++ Compiler v 4.2 User's Guide (Rev. H)
- Поиском по документу ищем ключевое слово "output" и находим упоминание в разделе 1.2.2 Output Files
Цитата
1.2.2 Output Files
These types of output files are created by the compiler:
COFF object files
Common object file format (COFF) provides basic modular (separately-compiled) compilation features,
such as relocations. COFF is a legacy format; it will continue to be supported, but support for some
modern language features will not be added
ELF object files
Executable and linking format (ELF) enables supporting modern language features like early template
instantiation and exporting inline functions.

и далее в разделе 1.2.4 Utilities
Цитата
1.2.4 Utilities
These features are compiler utilities:

...

• Hex conversion utility
For stand-alone embedded applications, the compiler has the ability to place all code and initialization
data into ROM, allowing C/C++ code to run from reset. The COFF files output by the compiler can be
converted to EPROM programmer data files by using the hex conversion utility, as described in the
MSP430 Assembly Language Tools User's Guide.

- См. вновь на той же страничке документ с упомянутым названием MSP430 Assembly Language Tools v 4.2 User's Guide (Rev. H) в котором внимательно изучаем Chapter 12. Hex Conversion Utility Description
- На той же страничке продукта находится основной документ для пользователя CCS Code Composer Studio v5.5 for MSP430 User's Guide (Rev. Z), где в разделе Using the Integrated Debugger описано как "прикрутить" к дебаггеру CCS эту утилиту для конвертации в стандартные форматы TI-TXT и Intel-HEX.
Цитата(aBoomest @ Jan 12 2014, 22:41) *
Есть ли программные средства чтобы просто загрузить файл прошивки в память МК (без среды разработки CCS)?

MSP430 Flasher - Command-line Programmer
FET-Pro430 от Elprotronic
MSPFET Programmer от Kurt-а
Естественно, что прошивка должна быть в одном из стандартных форматов (типа TI-TXT или Intel-HEX).
Цитата(aBoomest @ Jan 12 2014, 22:41) *
2. Как очистить память программ в CCS?
Допустим я загрузил в микроконтроллер программу. Она будет там "сидеть" до тех пор пока я не запишу туда другую новую программу на место этой. А можно ли удалить "все" из микросхемы?

Через JTAG или BSL, воспользовавшись командой Erase в любой из вышеперечисленных программ. Либо читайте User's Guide для вашей серии MSP430, где описано внутрипрограммное программирование и стирание Flash.
Цитата(aBoomest @ Jan 12 2014, 22:41) *
В каком мануале можно почитать о "внутренностях" процесса прошивки?

Читайте User's Guide для соответствующей серии MSP430. Ссылки на сайте призводителя http://www.ti.com/lsds/ti/microcontroller/...docCategoryId=6
Цитата(aBoomest @ Jan 12 2014, 22:41) *
3. В одном из примеров от TI увидел в коде ф-цию _delay_cycles(). Вставил в свой код. Работает?! Где определена эта функция?

В библиотеке CCS вестимо. Исходников может и не быть. Публиковать или нет исходники своих библиотек это личное добровольное дело разработчиков компилятора.
Цитата(aBoomest @ Jan 12 2014, 22:41) *
Встречал в примерах функции __bis_sr_register(). В чем её отличия от функции __bis_sr()?

Я не встречал вторую. Может это что-то самописное?
Цитата(aBoomest @ Jan 12 2014, 22:41) *
Читал что __bis_sr_register(GIE) эквивалентно _enable_interrupt(). Зачем их две, выполняющие одно и то же?

Первая более универсальная. unsigned short __bis_SR_register(unsigned short mask); компилируется в команду BIS mask, SR
Вторая функция void __enable_interrupt(void); не имеет аргумента и компилируется в команду EINT, которая суть то же самое, что и BIS GIE, SR
Цитата(aBoomest @ Jan 12 2014, 22:41) *
В чем отличие функций у которых перед именем одно подчеркивание (_) от функций в имени которых два подчеркивания (__) ?

Это зарезервированные компилятором имена функций. Не рекомендуется переопределять или использовать такие же имена в своих исходниках для функций с одним подчеркиванием и "запрещается" использовать с такими же именами у которых два подчеркивания. Для второго случая нормальная работа компилятора не гарантируется ибо начнутся неизбежные конфликты компиляции при дублировании имен зарезервированных функций.
Цитата(aBoomest @ Jan 12 2014, 22:41) *
Где взять описания всех этих функций?

В User's Guide на ваш компилятор. Конкретно для CCS они описаны в документе MSP430 Optimizing C/C++ Compiler v 4.2 User's Guide (Rev. H) в таблице Table 6-5. MSP430 Intrinsics
Цитата(aBoomest @ Jan 12 2014, 22:41) *
И все функции, они работают, хотя в *.h файлах я их не нашел. Где это все определено?

См. выше. В библиотечных функциях компилятора.
Цитата(aBoomest @ Jan 12 2014, 22:41) *
4. Где вообще можно почитать о написании кода для MSP 430 на СИ. В мануалах про сам контроллер написано хорошо но там асм, а вот что делать с СИ - не совсем понятно. Учиться чисто на примерах из сети - как-то странновато (может это и на первый взгляд, раньше на ассемблере писал).

Учебниками по языку Си наводнен весь Интернет. Учиться на примерах из сети - в этом нет ничего странного. Нужно только пользоваться заведомо рабочими примерами. У того же производителя (TI) на сайте есть примеры (Code Examples) для всех типов MSP430 и для всей периферии, имеющейся у MSP430.
Цитата(aBoomest @ Jan 12 2014, 22:41) *
Одним словом прошу помощи в информации!!!

Еще раз предлагаю вам учиться искать требуемую информацию самостоятельно! На сайте производителя www.ti.com этой информации в избытке. rolleyes.gif
Go to the top of the page
 
+Quote Post
aBoomest
сообщение Jan 13 2014, 05:07
Сообщение #23


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

Группа: Участник
Сообщений: 167
Регистрация: 24-12-08
Из: Россия
Пользователь №: 42 714



Цитата
Цитата
3. В одном из примеров от TI увидел в коде ф-цию _delay_cycles(). Вставил в свой код. Работает?! Где определена эта функция?

В библиотеке CCS вестимо. Исходников может и не быть. Публиковать или нет исходники своих библиотек это личное добровольное дело разработчиков компилятора.

Про публикование реализации никто не говорит, но заголовки-то должны где-то присутствовать, так или не так?

Огромное спасибо за такой развернутый ответ.
Много раз, естественно, был на ti.com и копался в этом огромном списке. Но для меня, как для начинающего работу с этими микросхемами, даже учитывая, что я не первый раз работаю с микроконтроллерами, трудновато на первых парах найти нужный документ для ответа на конкретный вопрос из такого большого списка, тем более что многие документы довольно обширные и даже просто просмотр занимает огромное количество времени. Мне достаточно было бы лишь дать ссылку на нужный мануал, а дальше проблем нет.
Еще раз спасибо за развернутость. sm.gif

С уважением, Анатолий.


--------------------
C уважением!
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 13 2014, 05:49
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(aBoomest @ Jan 13 2014, 10:07) *
Про публикование реализации никто не говорит, но заголовки-то должны где-то присутствовать, так или не так?

Я работаю с IAR, поэтому в "потрохах" CCS не очень ориентируюсь. Если по аналогии с IAR, то хедер intrinsics.h (в котором определены __bis_SR_register() и т.п.) находится среди стандартных хедеров от TI. А вот _delay_cycles() это уже библиотечная функция собственно компилятора и куда именно в CCS поместили ее хедер, я не знаю. Устанавливать CCS только ради этого знания, у меня желания нет sm.gif
Go to the top of the page
 
+Quote Post
aBoomest
сообщение Jan 13 2014, 06:24
Сообщение #25


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

Группа: Участник
Сообщений: 167
Регистрация: 24-12-08
Из: Россия
Пользователь №: 42 714



Ясно. Спасибо.


--------------------
C уважением!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 23:26
Рейтинг@Mail.ru


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