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

 
 
> почему char занмает 4 байта памяти, Keil, LPC2106
Kail
сообщение Dec 3 2006, 23:28
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 60
Регистрация: 3-08-06
Пользователь №: 19 285



компилятор Keil
char p[16] - занимает 64 байта памяти. Смотрел в дебагере симулятора. Почему? Куда копать? В сторону aligment?

И еще вопросики про память в догонку.
У меня стек в режиме User 0x400, т.е. 1024 байт, а я объявляю int p[1000], т.е. получится 4000 байт и потом в цикле заполняю массив for (i=0;i<1000;i++)p[i]=i; симулятор доходит до p[256] и все, дальше цикл крутится, но элементы не изменяют знвчения. Вопрос, почему не генерируются ошибки доступа к памяти?
Еще один вопрос, почему стэк растет вверх? Объявляю int i; и вижу ассемблерный код STMDB R13!,[R14], после его выполнения регистр свяи содержит значение 0x400003fc (при вершине стэка 0x40000400). Почему растет вверх, а не вниз???
UND_Stack_Size EQU 0x00000004
SVC_Stack_Size EQU 0x00000004
ABT_Stack_Size EQU 0x00000004
FIQ_Stack_Size EQU 0x00000004
IRQ_Stack_Size EQU 0x00000080
USR_Stack_Size EQU 0x00000400

AREA STACK, DATA, READWRITE, ALIGN=2
DSB USR_Stack_Size ; Stack for User/System Mode
DSB SVC_Stack_Size ; Stack for Supervisor Mode
DSB IRQ_Stack_Size ; Stack for Interrupt Mode
DSB FIQ_Stack_Size ; Stack for Fast Interrupt Mode
DSB ABT_Stack_Size ; Stack for Abort Mode
DSB UND_Stack_Size ; Stack for Undefined Mode
Top_Stack:
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Kail   почему char занмает 4 байта памяти   Dec 3 2006, 23:28
- - beer_warrior   Цитатаchar p[16] - занимает 64 байта памяти. Смотр...   Dec 4 2006, 00:16
- - aaarrr   Цитата(Kail @ Dec 3 2006, 23:28) компилят...   Dec 4 2006, 00:21
|- - Alexey Bishletov   Цитата(aaarrr @ Dec 4 2006, 00:21) Цитата...   Dec 4 2006, 09:22
|- - aaarrr   Цитата(Alexey Bishletov @ Dec 4 2006, 09...   Dec 4 2006, 16:28
|- - Alexey Bishletov   Цитата(aaarrr @ Dec 4 2006, 16:28) Цитата...   Dec 5 2006, 16:32
|- - zltigo   Цитата(Alexey Bishletov @ Dec 5 2006, 15...   Dec 5 2006, 17:03
|- - Alexey Bishletov   Цитата(zltigo @ Dec 5 2006, 17:03) Цитата...   Dec 6 2006, 09:13
|- - Alex03   Цитата(Alexey Bishletov @ Dec 6 2006, 11...   Dec 6 2006, 09:39
|- - zltigo   Цитата(Alexey Bishletov @ Dec 6 2006, 08...   Dec 6 2006, 11:51
|- - Alexey Bishletov   Цитата(zltigo @ Dec 6 2006, 11:51) Цитата...   Dec 6 2006, 15:01
|- - zltigo   Цитата(Alexey Bishletov @ Dec 6 2006, 14...   Dec 6 2006, 17:59
|- - Alexey Bishletov   Цитата(zltigo @ Dec 6 2006, 17:59) Да? Чи...   Dec 8 2006, 09:33
- - Kail   int main(void) { char p[16],i; for (i=0;i<16...   Dec 4 2006, 01:31
|- - aaarrr   Цитата(Kail @ Dec 4 2006, 01:31) Что смот...   Dec 4 2006, 02:43
- - sergeeff   Во всех С-компиляторах есть sizeof(X) - паказывает...   Dec 4 2006, 12:02
- - Kail   Всем спасибо, разобрался. Инициализированная перем...   Dec 4 2006, 18:24
- - boez   Вообще в гнутом С для выравнивания придуман атрибу...   Dec 7 2006, 12:23
|- - Alex03   Цитата(boez @ Dec 7 2006, 14:23) Вообще в...   Dec 7 2006, 14:11
- - d__   Туфта однозначно. Только что в кейле написал функц...   Dec 7 2006, 13:45
- - boez   Да я понимаю что туфта, я ответа спрашивал у товар...   Dec 7 2006, 14:06


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

 


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


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