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

 
 
> 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
Jat
сообщение Dec 16 2010, 04:22
Сообщение #3





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



Да, прошу прощения, это я попутался!
Сомнения у меня возникли вот из этого куска листинга

CODE
226:Lib/StdPeriph/src/stm32f10x_rcc.c **** void RCC_DeInit(void)
227:Lib/StdPeriph/src/stm32f10x_rcc.c **** {
26 .loc 1 227 0
27 .cfi_startproc
28 @ args = 0, pretend = 0, frame = 0
29 @ frame_needed = 0, uses_anonymous_args = 0
30 @ link register save eliminated.
228:Lib/StdPeriph/src/stm32f10x_rcc.c **** /* Set HSION bit */
229:Lib/StdPeriph/src/stm32f10x_rcc.c **** RCC->CR |= (uint32_t)0x00000001;
31 .loc 1 229 0
32 0000 104B ldr r3, .L2
33 0002 1A68 ldr r2, [r3, #0]
34 0004 1968 ldr r1, [r3, #0]
35 0006 42F00102 orr r2, r2, #1
36 000a 1A60 str r2, [r3, #0]
230:Lib/StdPeriph/src/stm32f10x_rcc.c ****
231:Lib/StdPeriph/src/stm32f10x_rcc.c **** /* Reset SW, HPRE, PPRE1, PPRE2, ADCPRE and MCO bits */
232:Lib/StdPeriph/src/stm32f10x_rcc.c **** #ifndef STM32F10X_CL
233:Lib/StdPeriph/src/stm32f10x_rcc.c **** RCC->CFGR &= (uint32_t)0xF8FF0000;
37 .loc 1 233 0
38 000c 5968 ldr r1, [r3, #4]
39 000e 0E4A ldr r2, .L2+4
40 0010 0A40 ands r2, r2, r1
41 0012 5968 ldr r1, [r3, #4]
42 0014 5A60 str r2, [r3, #4]


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


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

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



Цитата(Jat @ Dec 16 2010, 09:22) *
Сомнения у меня возникли вот из этого куска листинга
У меня компилируется нормально. Но у меня давненько уже выложенная Klen-ом линуксовая версия
Цитата
arm-kgp-eabi-gcc (Klen's GCC package (KGP) for ARM/elf platform) 4.6.0 20100525 (experimental)

CODE
6:main.c **** void RCC_DeInit()
7:main.c **** {
31 .loc 1 7 0
32 .cfi_startproc
33 @ args = 0, pretend = 0, frame = 0
34 @ frame_needed = 0, uses_anonymous_args = 0
35 @ link register save eliminated.
8:main.c **** RCC->CR |= (uint32_t)0x00000001;
36 .loc 1 8 0
37 0000 054B ldr r3, .L2
38 0002 1A68 ldr r2, [r3, #0]
39 0004 42F00102 orr r2, r2, #1
40 0008 1A60 str r2, [r3, #0]
9:main.c **** #ifndef STM32F10X_CL
10:main.c **** RCC->CFGR &= (uint32_t)0xF8FF0000;
41 .loc 1 10 0
42 000a 5968 ldr r1, [r3, #4]
43 000c 034A ldr r2, .L2+4
44 000e 01EA0202 and r2, r1, r2
45 0012 5A60 str r2, [r3, #4]
11:main.c **** #endif
12:main.c **** }
46 .loc 1 12 0
47 0014 7047 bx lr
48 .L3:
49 0016 00BF .align 2
50 .L2:
51 0018 00100240 .word 1073876992
52 001c 0000FFF8 .word -117506048
А в Вашем листинге таки читается по два раза, причём использутся первое чтение, а результат ворого отбрасывается.


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

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


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

 


RSS Текстовая версия Сейчас: 1st September 2025 - 00:52
Рейтинг@Mail.ru


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