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

 
 
> Cortex M3, M4 - разрядность переменных.
Allregia
сообщение Jul 11 2014, 11:47
Сообщение #1


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

Группа: Свой
Сообщений: 1 047
Регистрация: 28-06-07
Из: Israel
Пользователь №: 28 763



Какую разрядность переменных, лучше выбирать в случае когда "а пофиг" ?
Например флаг, который может быть 0 или1, максимум -1, или считающий до 10 счетчик, и тому подобное, когда можно и u8, и s8, и u32б и s32.
Памяти-то в Кортексах обычно более чем достаточно, и экономить нужно не всегда, но влияет-ли это на быстродействие программы?
Есть ли разница для локальных и глобальных переменных, и для volatile?

Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ViKo
сообщение Jul 12 2014, 07:06
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



И еще stdbool.h, и использовать bool тип.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jul 12 2014, 08:41
Сообщение #3


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

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



Цитата(ViKo @ Jul 12 2014, 11:06) *
И еще stdbool.h, и использовать bool тип.
Ну это как раз спорно.
Т.к. sizeof(bool) are implementation-defined и зачастую sizeof(bool)==sizeof(int), что для 8-ми битных контроллеров весьма печально.
Поэтому у меня наложено табу на stdbool.h в ембедед разработках.
А про uint_fast8_t Сергей дело говорит.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
ViKo
сообщение Jul 12 2014, 09:03
Сообщение #4


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(demiurg_spb @ Jul 12 2014, 11:41) *
Ну это как раз спорно.
Т.к. sizeof(bool) are implementation-defined и зачастую sizeof(bool)==sizeof(int), что для 8-ми битных контроллеров весьма печально.

Вижу, что в Keil для STM32 под bool выделяется байт. Да, пожалуй, неэффективно, ни по размеру ОЗУ, ни по коду. Но и целое слово выделять для логической переменной жалко. Тогда - битовые поля.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jul 12 2014, 09:56
Сообщение #5


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

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



Цитата(ViKo @ Jul 12 2014, 13:03) *
Тогда - битовые поля.
И потом для обеспечения атомарного доступа обрамлять к ним доступ критическими секциями. Увольте.
Единственный костыль для кортексов - это битбанд доступ к этим битам в поле. Но эти извращения должны быть сильно оправданы.

Цитата(skripach @ Jul 12 2014, 13:42) *
Разница конечно есть, но она ничтожна, нужно использовать тот тип данных который нужен.
uint_fast8_t - наше всёsm.gif


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Allregia   Cortex M3, M4 - разрядность переменных.   Jul 11 2014, 11:47
- - ViKo   Есть. Задавайте всё int, если ОЗУ у вас с избытком...   Jul 11 2014, 12:03
- - jcxz   Цитата(Allregia @ Jul 11 2014, 17:47) Ест...   Jul 11 2014, 16:10
- - Сергей Борщ   На любом совершенно процессоре подключить к програ...   Jul 12 2014, 06:33
|- - ViKo   Цитата(demiurg_spb @ Jul 12 2014, 12:56) ...   Jul 12 2014, 10:33
|- - Allregia   Цитата(demiurg_spb @ Jul 12 2014, 11:56)1...   Jul 12 2014, 10:42
|- - ViKo   Цитата(Allregia @ Jul 12 2014, 13:42) Спа...   Jul 12 2014, 10:49
|- - jcxz   Цитата(ViKo @ Jul 12 2014, 16:49) Первое ...   Jul 13 2014, 04:29
- - skripach   Разница конечно есть, но она ничтожна, нужно испол...   Jul 12 2014, 09:42
- - Allregia   Еще пара вопросов про плавающую точку: 1) как я ...   Jul 12 2014, 22:03
|- - ms1   Цитата(Allregia @ Jul 13 2014, 01:03) Отк...   Jul 12 2014, 22:22
- - DASM   Дайте пожалуйста, ссылку, где вы усмотрели write-...   Jul 13 2014, 04:40
|- - jcxz   Если Вы потрудитесь открыть например "Cortex-...   Jul 13 2014, 04:55
- - DASM   Уточню, есть ли он в однокристаллках all-in-one, т...   Jul 13 2014, 05:08
|- - jcxz   Вообще-то топик не про какой-то конкретный проц, а...   Jul 13 2014, 06:04
|- - ViKo   Цитата(jcxz @ Jul 13 2014, 09:04) Вообще-...   Jul 13 2014, 06:35
|- - jcxz   Цитата(ViKo @ Jul 13 2014, 12:35) В M3 и ...   Jul 13 2014, 06:55
- - DASM   Может и ошибаюсь.   Jul 13 2014, 06:06
- - DASM   Не очень понимаю смысл кеша, расположенного на вне...   Jul 13 2014, 07:15
|- - demiurg_spb   Цитата(DASM @ Jul 13 2014, 11:15) Не очен...   Jul 13 2014, 08:42
- - adnega   Все поняли вопрос? ЦитатаКакую разрядность перемен...   Jul 13 2014, 07:43
|- - A. Fig Lee   Цитата(adnega @ Jul 13 2014, 03:43) Все п...   Jul 13 2014, 13:09
||- - adnega   Цитата(A. Fig Lee @ Jul 13 2014, 17:09) i...   Jul 13 2014, 15:46
||- - A. Fig Lee   Цитата(adnega @ Jul 13 2014, 11:46) Я вез...   Jul 13 2014, 17:42
||- - adnega   Цитата(A. Fig Lee @ Jul 13 2014, 21:42) Т...   Jul 13 2014, 18:37
|- - Allregia   Цитата(adnega @ Jul 13 2014, 09:43) Все п...   Jul 13 2014, 21:00
|- - AHTOXA   Цитата(Allregia @ Jul 14 2014, 03:00) В о...   Jul 14 2014, 05:40
- - andrewlekar   АНТОХА, +1. Не используйте u32, s32 и подобную ере...   Jul 14 2014, 06:40
|- - Сергей Борщ   Цитата(andrewlekar @ Jul 14 2014, 09:40) ...   Jul 14 2014, 07:23
- - andrewlekar   Будет не меньше байта: для счётчиков, флагов хвати...   Jul 14 2014, 07:27


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

 


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


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