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

 
 
> volatile, тонкости
klen
сообщение Dec 15 2010, 20:08
Сообщение #1


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Цитата(_3m @ Dec 15 2010, 21:46) *
crying.gif crying.gif crying.gif
ыы-ы-ы...
у меня 32-х битный линукс и 64 поставить нет никакой возможности
Уважаемый klen, выкладывайте хотя бы исходники.

дык исходники в транке - бери кто хочеш sm.gif делай что хочеш

а че возможности нету то? на телефоне чтоль кодите? sm.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jat
сообщение Dec 16 2010, 03:51
Сообщение #2





Группа: Участник
Сообщений: 8
Регистрация: 6-03-06
Из: Новосибирск
Пользователь №: 15 027



Вот примерчик ошибки в генерации кода для cortex

код такой

volatile int *p;
void proc(void) { *p = 1; }

здесь чтения переменной быть *p быть не должно!
только запись!
а генерится и чтение тоже

CODE

proc:
movw r3, #:lower16:p
movt r3, #:upper16:p
ldr r3, [r3, #0] !!!!!!!!!!!!!!!!! Во это совсем не надо!
mov r2, #1
str r2, [r3, #0]
bx lr
.size proc, .-proc
.comm p,4,4
.ident "GCC: (Klen's GCC package (KGP) for ARM/elf platform) 4.6.0 20101212 (experimental)"





Сообщение отредактировал Jat - Dec 16 2010, 03:57
Go to the top of the page
 
+Quote Post
ReAl
сообщение Dec 16 2010, 06:52
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Ну так а тут идёт операция чтение-модификация-запись, что запрошено, то и делается.
Цитата
var op= expression;
это то же самое, что и
Цитата
var = var op (expression);
Т.е. чтение var тут как ни крути, а есть.
Ну, если строго, то за исключением того, что адрес объекта var, в данном случае RCC->CR, вычисляется один раз (тонкость проявляется в случае, если лично сам указатель volatile, например, int * volatile p;, а как квалифицировано то, на что он указывает - не важно).
Впрочем, это вопрос не по этой теме, а где-то в разъяснениях тонкостей языков С/С++.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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