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

 
 
> volatile, тонкости
Jat
сообщение Dec 16 2010, 03:51
Сообщение #1





Группа: Участник
Сообщений: 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

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


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

 


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


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