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

 
 
11 страниц V  « < 8 9 10 11 >  
Reply to this topicStart new topic
> libopencm3, Неплохая либа для кортексов...
_Pasha
сообщение Nov 6 2015, 08:53
Сообщение #136


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(shreck @ Nov 6 2015, 12:33) *
"В свете ж вот какое чудо" stm32plus
Чувак проделал огромную работу. Выглядит прям не либа, а целый фреймворк.
Сам не пробовал.

тоже... ткнулся наугад
Код
/**
  * @brief  Deinitializes the SDIO peripheral registers to their default reset values.
  * @param  None
  * @retval None
  */
void SDIO_DeInit(void)
{
  SDIO->POWER = 0x00000000;
  SDIO->CLKCR = 0x00000000;
  SDIO->ARG = 0x00000000;
  SDIO->CMD = 0x00000000;
  SDIO->DTIMER = 0x00000000;
  SDIO->DLEN = 0x00000000;
  SDIO->DCTRL = 0x00000000;
  SDIO->ICR = 0x00C007FF;
  SDIO->MASK = 0x00000000;
}

и сразу же вопрос: а нафига, если есть RCC? rolleyes.gif
Go to the top of the page
 
+Quote Post
drozel
сообщение Nov 6 2015, 17:32
Сообщение #137


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

Группа: Свой
Сообщений: 108
Регистрация: 2-02-11
Пользователь №: 62 650



Цитата(Ruslan1 @ Nov 6 2015, 12:18) *
Хотя гораздо интереснее бы было этого же добится в основной ветке с помощью директив условной компиляции (#IFDEF и прочее).

Сейчас не могу найти док, но как то читал code style разрабов, они там довольно резко написали, что-то типа "мы используем GCC, если вам нравится другой тулчейн, мучайтесь с портированием сами, мы таким не страдаем".
Что, в целом, разумно, ибо:
1) пора переходить на ГЦЦ
2) если неохота, можно собрать либу в объектник с помощью ГЦЦ и цеплять тем же ИАРом. Я, пожалуй, в свободное время так и поступлю

Сообщение отредактировал drozel - Nov 6 2015, 17:33
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 6 2015, 19:10
Сообщение #138


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



непонятно к чему эти рассуждения.
там нет шаблонов готовых проектов Кейл. только и всего. Т.е. чтобы собрать либу (именно либу а не таскать с собой килограмм любимых исходников) - нужно притащить в кейловский проект все что нужно
выясняется что же нужно командой make -n
мэйк вывалит те команды, которые он собирается выполнять. Оттуда понять, какие файлы куда и сделать один большой мультитаргет, потом собрать все что необходимо в либу - и энджой.
никаких там мифических директив GCC и в помине нету.
и непортируемых фишек а-ля winAVR там не найдете.
Go to the top of the page
 
+Quote Post
drozel
сообщение Nov 7 2015, 04:53
Сообщение #139


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

Группа: Свой
Сообщений: 108
Регистрация: 2-02-11
Пользователь №: 62 650



Цитата(_Pasha @ Nov 7 2015, 01:10) *
никаких там мифических директив GCC и в помине нету.

Возможно,
Код
__attribute__ packed(4)
и множество других - и не директивы GCC, но в ИАРе они не компилируются
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Nov 7 2015, 11:46
Сообщение #140


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(drozel @ Nov 7 2015, 07:53) *
Возможно,
Код
__attribute__ packed(4)
и множество других - и не директивы GCC, но в ИАРе они не компилируются

Где там packed(4)? Вот grep'ом прошелся - нигде и близко такого нету

__attribute__((packed)) понимается кейлом с полуслова. И при чем тут ИАР если речь про кейл.


А вот про always_inline - кейл его просто игнорирует
Вот асмовые вставки надо пересмотреть, то да.
Go to the top of the page
 
+Quote Post
drozel
сообщение Nov 7 2015, 13:15
Сообщение #141


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

Группа: Свой
Сообщений: 108
Регистрация: 2-02-11
Пользователь №: 62 650



Цитата(_Pasha @ Nov 7 2015, 17:46) *
Где там packed(4)? Вот grep'ом прошелся - нигде и близко такого нету

__attribute__((packed)) понимается кейлом с полуслова. И при чем тут ИАР если речь про кейл.


А вот про always_inline - кейл его просто игнорирует
Вот асмовые вставки надо пересмотреть, то да.

Ну мы немного про разное думаем)
Я в ответ на это
Цитата(Ruslan1 @ Nov 6 2015, 12:18) *
Странно, что никто еще не сделал расширение для поддержки чего-нибудь еще кроме gcc в рамках исходников проекта

начал мыслить в сторону ИАРа, которым пользуюсь, а вы в сторону кейла, хотя, не спорю, конкретики было больше про кейл.
Кстати, не знал, что он понимает __attribute.
А packed(4) был в одной из вложенных структур в USB

Не скажете, что за стиль писать объявлять структуры без typedef у разрабов? Есть какие-то подводные камни?[/code]

Сообщение отредактировал drozel - Nov 7 2015, 13:17
Go to the top of the page
 
+Quote Post
SSerge
сообщение Nov 7 2015, 13:55
Сообщение #142


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(drozel @ Nov 7 2015, 20:15) *
Не скажете, что за стиль писать объявлять структуры без typedef у разрабов? Есть какие-то подводные камни?[/code]

Это же плюсы, там структура это тоже класс, никаких typedef не надо, имя структуры можно сразу использовать для объявления переменных и без слова struct.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
drozel
сообщение Nov 7 2015, 16:20
Сообщение #143


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

Группа: Свой
Сообщений: 108
Регистрация: 2-02-11
Пользователь №: 62 650



Цитата(SSerge @ Nov 7 2015, 19:55) *
Это же плюсы, там структура это тоже класс, никаких typedef не надо, имя структуры можно сразу использовать для объявления переменных и без слова struct.

Поясните? Вроде, объявлять без struct можно как раз тогда, когда определена она как
Код
typedef struct {
....
}myType_t;
Go to the top of the page
 
+Quote Post
SSerge
сообщение Nov 7 2015, 17:55
Сообщение #144


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(drozel @ Nov 7 2015, 23:20) *
Поясните? Вроде, объявлять без struct можно как раз тогда, когда определена она как

Писал на эту тему недавно:
http://electronix.ru/forum/index.php?s=&am...t&p=1326899
Ваш пример на C++ можно переписать так:
Цитата
struct myType_t{
....
}; //теперь myType_t является именем нового пользовательского типа (класса)

// можно объявить переменную такого типа:
myType_t myVar;
//или указатель на неё
myType_t *myPtr = &myVar;


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 7 2015, 18:15
Сообщение #145


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(SSerge @ Nov 7 2015, 18:55) *
Это же плюсы, там структура это тоже класс, никаких typedef не надо, имя структуры можно сразу использовать для объявления переменных и без слова struct.

libopencm3 - это си без плюсов.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
SSerge
сообщение Nov 7 2015, 18:49
Сообщение #146


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

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(AHTOXA @ Nov 8 2015, 01:15) *
libopencm3 - это си без плюсов.

это я с stm32plus перепутал, а в libopencm3 (посмотрел сейчас) конструкция typedef struct присутствует в изрядных количествах.
По большому счёту, объявления typedef struct не являются совершенно необходимыми, можно и без них обойтись, просто писанины чуть больше.
Если где-то их не оказалось - это не криминал, тут больше вопрос вопрос о читабельности и единстве стиля.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Nov 9 2015, 10:54
Сообщение #147


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(megajohn @ Nov 6 2015, 11:08) *
посмотрел исходники, не впечатлило

Я и не агитирую за неё, просто _моему_ глазу приятнее смотрится, чем куб и иже с ним (структурированность и кодестайл).
Многое я бы реализовал иначе.
Что касается УАРТа, то у меня он свой собственный без каких бы то ни было библиотек, так что ничем помочь не могу...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
AlexRayne
сообщение Nov 17 2016, 21:29
Сообщение #148


Местный
***

Группа: Участник
Сообщений: 319
Регистрация: 27-09-07
Пользователь №: 30 877



Подскажите бывалые, а есть возможность использовать libopencm3 в проекте уже напиленом на HAL, с keil-RTX? сосуществование возможно или вообще никак?
Go to the top of the page
 
+Quote Post
rudy_b
сообщение Nov 18 2016, 04:44
Сообщение #149


Знающий
****

Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458



Извиняюсь за вопрос не по теме (ну не совсем по теме), но тут много писали про работу с UART.
Понятно, что передавать проще всего через DMA. А вот с приемом через DMA - проблема, пока решаю ее приемом по прерываниям, что накладно.

Если принимать по DMA, то что будет с ошибками? Что сделает DMA при наличии ошибок типа parity error или frame error? Положит в буфер фуфловое значение или даст ошибку DMA (что неправильно) или пропустит этот байт? Как это определить по данным в буфере DMA или FIFO? Прерывания приемника по ошибке можно сделать, но, при работе по DMA, это мало что даст. Вот если бы в буфер писался бы еще и байт статуса...

В описаниях STM32(f207) не нашел подробностей, может кто подскажет как решается эта проблема?
Go to the top of the page
 
+Quote Post
Эдди
сообщение Nov 18 2016, 06:05
Сообщение #150


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Какой смысл работать с UART по DMA, если там скорости никакущие?
Go to the top of the page
 
+Quote Post

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

 


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


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