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

 
 
> 32-bit или 16-bit?
shide_3
сообщение Jul 28 2016, 13:21
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 314
Регистрация: 27-04-10
Пользователь №: 56 923



Здравствуйте.Подскажите пожал-ста, есть ли принципиальная разница в написании программ на языке Си к МК 8-битному и скажем, к 16 или 32 битному? (То, что регистры общего назначения у них разной длины, это понятно.) Ведь на самом деле, я могу использовать тип long int во всех случаях?
спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
adnega
сообщение Jul 28 2016, 19:59
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(shide_3 @ Jul 28 2016, 16:21) *
есть ли принципиальная разница в написании программ на языке Си к МК 8-битному и скажем, к 16 или 32 битному?

Нет. Разрядность будет носить только оптимизационные особенности.

Цитата(toweroff @ Jul 28 2016, 19:40) *
что обработка 32-разрядного регистра происходит атомарно, за 1 команду.

Ну, часто переменные сидят в ОЗУ. Для архитектур 16 и 32 бит имеет смысл понятие "выравнивание" и "тип индейцев".
Например, 32-битный Cortex-M0 не умеет работать с невыровненными данными и 32 битная переменная собирается
из 4 последовательных чтений 8-битных порций. Правда, при чем тут атомарность не совсем понятно.

"Индейцы" могут сильно помочь или помешать при реализации внешних протоколов.
Но опять же - не принципиально.

Цитата(_4afc_ @ Jul 28 2016, 19:55) *
Т.е. если A=65535 результат от A+=1; или A<<=1; будет разный при u16 и u32.

Типы данных могут быть реализованы на любой разрядности.
Программист должен выбирать корректный тип для хранения данных.
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Jul 30 2016, 19:03
Сообщение #3


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

Группа: Свой
Сообщений: 1 262
Регистрация: 13-10-05
Из: Санкт-Петербург
Пользователь №: 9 565



Цитата(adnega @ Jul 28 2016, 22:59) *
Типы данных могут быть реализованы на любой разрядности.
Программист должен выбирать корректный тип для хранения данных.


Справедливо, если в коде тип u32, а если Int...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Jul 30 2016, 20:25
Сообщение #4


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(_4afc_ @ Jul 30 2016, 22:03) *
Справедливо, если в коде тип u32, а если Int...


Переименовать int в int32_t, и всех делов.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- shide_3   32-bit или 16-bit?   Jul 28 2016, 13:21
- - Сергей Борщ   QUOTE (shide_3 @ Jul 28 2016, 16:21) Ведь...   Jul 28 2016, 13:34
|- - shide_3   Цитата(Сергей Борщ @ Jul 28 2016, 17:34) ...   Jul 28 2016, 13:47
- - toweroff   Цитата(shide_3 @ Jul 28 2016, 16:21) я мо...   Jul 28 2016, 13:52
|- - shide_3   Цитата(toweroff @ Jul 28 2016, 17:52) даж...   Jul 28 2016, 14:02
- - AlexandrY   Цитата(shide_3 @ Jul 28 2016, 16:21) Здра...   Jul 28 2016, 14:16
|- - shide_3   Цитата(AlexandrY @ Jul 28 2016, 18:16) А ...   Jul 28 2016, 15:33
- - toweroff   Цитата(shide_3 @ Jul 28 2016, 17:02) Чест...   Jul 28 2016, 16:40
- - _4afc_   Цитата(shide_3 @ Jul 28 2016, 16:21) Здра...   Jul 28 2016, 16:55
- - ViKo   Топикстартеру - в чем вопрос, не понимаю. Понятно,...   Jul 28 2016, 19:16
|- - zltigo   QUOTE (adnega @ Jul 28 2016, 22:59) ...   Jul 29 2016, 06:14
|- - shide_3   Цитата(adnega @ Jul 28 2016, 22:59) Напри...   Jul 29 2016, 17:35
||- - SII   Цитата(shide_3 @ Jul 29 2016, 20:35) а чт...   Jul 30 2016, 07:49
- - Alex11   ЦитатаВ чем тогда его 32-битность состоит? Естеств...   Jul 29 2016, 20:23


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:54
Рейтинг@Mail.ru


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