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

 
 
> PIC24F реальный размер const во флеше.
YAM
сообщение Feb 14 2008, 17:21
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 256
Регистрация: 7-07-04
Из: Ukraine
Пользователь №: 291



Имеем PIC24F, MPLAB + C30
Я правильно понял, что
массив из const char mass[10]; реально займет 15 байт флэша,
массив из const int mass[10]; реально займет 30 байт флэша,
массив из const long mass[10]; реально займет 60 байт флэша?
Т.е. реально теряем один из трёх байт при упаковке констант?


--------------------
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Diz
сообщение Feb 15 2008, 12:15
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 84
Регистрация: 1-08-06
Пользователь №: 19 250



Попутно обнаружился забавный глюк:

Код
typedef struct
{
    uint a;
    uint b[];
} test_struct_t;

const test_struct_t testSt1 = {1, {0,0,0,0,0,0,0,0}};
const test_struct_t testSt2 = {0, {1,0,0,0,0,0,0,0}};
const test_struct_t testSt3 = {0, {0,0,0,0,0,0,0,0}};

//


14565                      .global    _testSt3; export
14566                      .section    .const,psv
14567                         .align    2
14568                     _testSt3:
14569 0000 00 00               .skip    2
14570                         .global    _testSt2; export
14571                         .align    2
14572                     _testSt2:
14573 0002 00 00               .word    0
14574 0004 01 00               .word    1
14575 0006 00 00               .word    0
14576 0008 00 00               .word    0
14577 000a 00 00               .word    0
14578 000c 00 00               .word    0
14579 000e 00 00               .word    0
14580 0010 00 00               .word    0
14581 0012 00 00               .word    0
14582                         .global    _testSt1; export
14583                         .align    2
14584                     _testSt1:
14585 0014 01 00               .word    1
14586 0016 00 00               .word    0
14587 0018 00 00               .word    0
14588 001a 00 00               .word    0
14589 001c 00 00               .word    0
14590 001e 00 00               .word    0
14591 0020 00 00               .word    0
14592 0022 00 00               .word    0
14593 0024 00 00               .word    0


Размер testSt3 вычисляется неверно - нули в массиве игнорируются.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- YAM   PIC24F реальный размер const во флеше.   Feb 14 2008, 17:21
- - Alex B._   Цитата(YAM @ Feb 14 2008, 20:21) Т.е. реа...   Feb 14 2008, 21:10
- - Diz   Плюс есть некоторые тонкости с упаковкой структур ...   Feb 14 2008, 21:34
|- - Alex B._   Цитата(Diz @ Feb 15 2008, 00:34) Плюс ест...   Feb 15 2008, 08:20
- - YAM   Понятно, спасибо... Судя по всему IAR вообще не за...   Feb 15 2008, 08:06
- - YAM   Не, у вас doo в ОЗУ... Для IAR: <PRE> typede...   Feb 15 2008, 08:54
- - Diz   Да, насчет упаковки просто байтового массива я был...   Feb 15 2008, 10:40
|- - Alex B._   Цитата(Diz @ Feb 15 2008, 13:40) Попадани...   Feb 15 2008, 11:04
|- - Alex B._   Цитата(Diz @ Feb 15 2008, 15:15) Попутно ...   Feb 15 2008, 17:13
- - Diz   Должна быть 3.02 - точно смогу сказать в понедельн...   Feb 15 2008, 19:39
- - Diz   Да, 3.02: pic30-coff-gcc.exe (GCC) 4.0.3 (dsPIC30...   Feb 18 2008, 10:38
|- - Alex B._   Цитата(Diz @ Feb 18 2008, 13:38) Да, 3.02...   Feb 18 2008, 20:17
- - Diz   Спасибо за инфу. Недавно в 3.02 попался еще один...   Feb 19 2008, 07:31
|- - Alex B._   Цитата(Diz @ Feb 19 2008, 10:31) Если пол...   Feb 19 2008, 07:42
- - Diz   Воссоздать - убрать весь лишний мусор и оставить б...   Feb 19 2008, 11:18


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 18:33
Рейтинг@Mail.ru


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