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

 
 
5 страниц V  « < 3 4 5  
Reply to this topicStart new topic
> давайте делится удобными дефайнами для stm32f10x
Tahoe
сообщение Feb 9 2013, 16:07
Сообщение #61


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(Golikov A. @ Feb 9 2013, 19:17) *
не очень понимаю в чем спор то?

Изначально - нужен bit-band или "можно и без него обойтись, не очень-то и хотелось".

Цитата(Golikov A. @ Feb 9 2013, 19:17) *
я если что-то иничу или ремаплю, то делаю это один раз, и могу выбрать последовательность в которой все пройдет гладко

Ключевое слово здесь "я". Это частный случай. Но начиная с какого-то размера, трудоемкость raw кодирования сильно увеличивается. Избежать этого поможет разбиение на блоки. Но появляется ограничение - блоки должны работать корреткно, в т.ч. независимо от того, в какой последовательности их вызывают. В моем случае, есть несколько разных модулей верхнего уровня, каджый из которых может вызвать инициализацию в произвольный момент, а не только в начале программы. Больше того, модули верхнего уровня могут быть написаны сторонними людьми, поэтому достоверно определить, когда вызывается инициализация - затруднительно. Совсем не факт, что она вызывается только один раз в самом начале.

Цитата(HHIMERA @ Feb 9 2013, 19:59) *
Нет там никаких проблем с ремапом... ни в каком виде... изначально... всё это надуманно...

Вообще-то, проблему я выше изложил. Позже даже разжевал, причем подробно. Но раз нет - значит нет. На том и порешим.
P.S.
"Пушкин, он как гамлЕт. Все отрицал." (с) Шура Каретный
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Feb 9 2013, 16:40
Сообщение #62


Местный
***

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



Цитата(Tahoe @ Feb 9 2013, 20:07) *
проблему я выше изложил. Позже даже разжевал, причем подробно. Но раз нет - значит нет.

Хорошо...
Почему проблема возникла только у вас... судя по отсутствию "горячего" обсуждения... проблема "чисто ваша"...
Иначе... было-бы и обсуждение и методы решения...
Думать, что ремапом пользуетесь только вы.... наивно, по крайней мере...
Отсюда: Проблемы нет... и она никому не интересна, ввиду её полного отсутствия...

Дальше...
Регистр прочитать нельзя... но писать то можно??? Трудности с установкой/ очисткой битов??? Не знаете что такое маска???
Очистили нужные биты, потом установили... в хэдэр хоть заглядывали??? Так в чём проблемы???
А бит-бэндинг/ не бит-бэндинг это уже частности... а не панацея...
Go to the top of the page
 
+Quote Post
Petka
сообщение Feb 9 2013, 16:45
Сообщение #63


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Возвращаясь в тему.
ИМХО для АРМов использовать "дефайны" и "инлайн функции" в заголовочниках сейчас не имеет никакого практического смысла. Современные компиляторы (свежие GCC с опцией -flto) прекрасно анализируют код и при необходимости сами "заинлайнят" нужные функции. А если указана опция оптимизировать по размеру, то наоборот не будут "разворачивать" код.
Отказ от "дефайнов" приводит к более красивому коду и к простоте отладки. Дефайны не осуществляют проверку типов и т.п.

Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Feb 9 2013, 16:55
Сообщение #64


Местный
***

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



C vs C++ ??? rolleyes.gif
Go to the top of the page
 
+Quote Post
Petka
сообщение Feb 9 2013, 17:07
Сообщение #65


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(HHIMERA @ Feb 9 2013, 20:55) *
C vs C++ ??? rolleyes.gif

Это-то тут причём? Ради флуда?
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Feb 9 2013, 17:24
Сообщение #66


Местный
***

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



Цитата(Petka @ Feb 9 2013, 21:07) *
Это-то тут причём? Ради флуда?


Цитата
Отказ от "дефайнов" приводит к более красивому коду и к простоте отладки. Дефайны не осуществляют проверку типов и т.п.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Feb 9 2013, 17:26
Сообщение #67


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата(HHIMERA @ Feb 9 2013, 20:40) *
Дальше...
Регистр прочитать нельзя... но писать то можно??? Трудности с установкой/ очисткой битов??? Не знаете что такое маска???
Очистили нужные биты, потом установили... в хэдэр хоть заглядывали??? Так в чём проблемы???
А бит-бэндинг/ не бит-бэндинг это уже частности... а не панацея...


вы не совсем правы. Если регистр прочитать нельзя, то нельзя установить его значения. Следовательно присвоение по маске тоже не сработает.

так как общее правило для него считать значение, изменить нужные маскированные биты, и записать значение обратно. В этом случае если нет возможности достоверного считывания значения то и нет возможности записать его достоверно обратно.
к примеру бит который читается всегда как 0, но может быть выставлен в единицу, после считывания и записывания обратно гарантировано занулиться...

единственное мне очень странно слышать недоступный для чтения бит, недоступный для записи я могу понять, но для чтения?... Зачем они такие...

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

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

а что нет портов ввода вывода, так это потому что часто для них есть свой регистр поставить бит и стереть бит, меняющий именно один бит одного регистра за один такт, и нет смысла отъедать лишнюю память...

резюме: без бит-банда можно обойтись, иначе не было прошлых процов без него, он также удобен - иначе бы его не делали. То есть это инструмент который делает нашу жизнь лучше и не надо его отрицатьsm.gif, ровно как и положить за него жизнь... ИМХО
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Feb 9 2013, 18:01
Сообщение #68


Местный
***

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



Цитата(Golikov A. @ Feb 9 2013, 20:26) *
вы не совсем правы. Если регистр прочитать нельзя, то нельзя установить его значения. Следовательно присвоение по маске тоже не сработает.

Ещё раз... читать нельзя... но есть Reset value... есть от чего отталкиваться...
А дальше... или я по маске набью переменную и целиком затолкаю в регистр... или положу в регистр заранее подготовленное значение... или буду дёргать бит-бэндом... всё от задачи...
А сама проблема ремапа... где???

Go to the top of the page
 
+Quote Post
Tahoe
сообщение Feb 9 2013, 18:16
Сообщение #69


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(HHIMERA @ Feb 9 2013, 22:01) *
Ещё раз... читать нельзя... но есть Reset value... есть от чего отталкиваться...

Индусский подход? Именно так в либах от ST и сделано ( о чудо, оказывается я заглядываю в "хидеры" и "либы" ). К чему это приводит, я уже объяснял. По второму разу жевать одно и тоже - никакого желания.

Цитата(HHIMERA @ Feb 9 2013, 22:01) *
А сама проблема ремапа... где???

Круто. Расписать несколько вариантов "костылей", а потом самому же скромно спросить - а где, собственно, проблема? Я оценил. biggrin.gif

Цитата(Petka @ Feb 9 2013, 20:45) *
Отказ от "дефайнов" приводит к более красивому коду и к простоте отладки. Дефайны не осуществляют проверку типов и т.п.

Все верно. И таким образом, тема плавно перетекает в грамотно продуманный API.
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Feb 9 2013, 18:24
Сообщение #70


Местный
***

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



Цитата(Tahoe @ Feb 9 2013, 22:16) *
Круто. Расписать несколько вариантов "костылей", а потом самому же скромно спросить - а где, собственно, проблема? Я оценил. biggrin.gif

Если подумать... то вариант с бит-бэндом, при частом ремапе, самый бестолковый "костыль"... biggrin.gif
Но это ваша "проблема"... laughing.gif
Go to the top of the page
 
+Quote Post

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

 


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


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