Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 03.06.2014, 16:11  
MaxiMuz79
Гражданин KAZUS.RU
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
MaxiMuz79 на пути к лучшему
По умолчанию Keil v4.7: Где размещаются данные описанные const ?

Интересует под Keil где описывается правило размещения данных или массива данных обьявленных как const. Размещаются ли они в ОЗУ или в памяти программ ?
Например:
Код:
const u8 CodeKey[12]={1,4,7,11,2,5,8,10,3,6,9,12};
Реклама:
MaxiMuz79 вне форума  
Непрочитано 03.06.2014, 16:36  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

А какой смысл хранить константные данные в ОЗУ?
Easyrider83 вне форума  
Непрочитано 03.06.2014, 17:36  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,360
Сказал спасибо: 85
Сказали Спасибо 619 раз(а) в 374 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

Разместится в ОЗУ.
Чтобы разместилось во флэше, надо обозначить секцию, типа этого:
Код:
#pragma arm section rodata = "mysectname"
const u8 CodeKey[12]={1,4,7,11,2,5,8,10,3,6,9,12};
#pragma arm section
Ну и, при желании, в файле sct можно задать адрес и размер секции "mysectname", но это не обязательно.
pambaru вне форума  
Непрочитано 03.06.2014, 18:16  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

Как-то я спокойно массивы данных больше размера оперативы во флеши размещал и ничего.
Easyrider83 вне форума  
Непрочитано 03.06.2014, 18:17  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

pambaru, чушь не пиши , с const будет в флеше .
Код:
const  uint8_t seg_table[]={
                     CH_0,CH_1,CH_2,CH_3,CH_4,CH_5,CH_6, CH_7,  CH_8,  CH_9,
                     CH_A, CH_B,  CH_C,  CH_D, CH_E, CH_F, CH_Sp,              
                     CH_A,
                     CH_B,
                     CH_C,
....
листинг
Код:
                          AREA ||.constdata||, DATA, READONLY, ALIGN=0

                  seg_table
000000  fa0ab69e          DCB      0xfa,0x0a,0xb6,0x9e
000004  4edcfc8a          DCB      0x4e,0xdc,0xfc,0x8a
000008  fedeee7c          DCB      0xfe,0xde,0xee,0x7c
....
map
Код:
   __semihosting_library_function           0x08000faf   Thumb Code     0  indicate_semi.o(.text)
    seg_table                                0x0800100c   Data          80  tic33.o(.constdata)
    Region$$Table$$Base                      0x0800105c   Number         0  anon$$obj.o(Region$$Table)
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 04.06.2014, 09:33  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,360
Сказал спасибо: 85
Сказали Спасибо 619 раз(а) в 374 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

Сообщение от dosikus Посмотреть сообщение
pambaru, чушь не пиши , с const будет в флеше .
Собрал тестовый проект, точно идет во флэш.
Но у меня отложилось в памяти, что в каком-то из проектов лежало в ОЗУ. Я еще удивился, увидев это в map файле. Потом я явно указал секцию и прописал ее в sct файле.
Может уже чего запамятовал... Спишем на наступающий старческий маразм
pambaru вне форума  
Непрочитано 04.06.2014, 11:58  
MaxiMuz79
Гражданин KAZUS.RU
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
MaxiMuz79 на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

Да, действительно массив адресуется из флеш-памяти.
Попробывал 3 варианта:
- массив без const
- массив c const
- баз массива.
Меняется только размер кода , RO , RW и ZI - остаются прежними.
MaxiMuz79 вне форума  
Непрочитано 04.06.2014, 12:39  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

MaxiMuz79, Да ну... Так уж без const и нет изменений ?
Код:
//const  uint8_t seg_table[]={
 uint8_t seg_table[]={	
	
                     CH_0,CH_1,CH_2,CH_3,CH_4,CH_5,CH_6, CH_7,  CH_8,  CH_9,// num table
                     CH_A, CH_B,  CH_C,  CH_D, CH_E, CH_F, CH_Sp,              
                     CH_A,
                     CH_B,
                     CH_C,
                     CH_D,
...
листинг
Код:
                          AREA ||.data||, DATA, ALIGN=1

                  seg_table
000000  fa0ab69e          DCB      0xfa,0x0a,0xb6,0x9e
000004  4edcfc8a          DCB      0x4e,0xdc,0xfc,0x8a
000008  fedeee7c          DCB      0xfe,0xde,0xee,0x7c
00000c  f03ef4e4          DCB      0xf0,0x3e,0xf4,0xe4
000010  00ee7cf0          DCB      0x00,0xee,0x7c,0xf0
000014  3ef4e400          DCB      0x3e,0xf4,0xe4,0x00
000018  6e0a003a          DCB      0x6e,0x0a,0x00,0x3a
...
map

Код:
ulCount                                  0x20000058   Data           4  key.o(.data)
    seg_table                                0x20000062   Data          80  tic33.o(.data)
    Tic55_buf                                0x200000b2   Data          18  tic33.o(.data)
...


Маcсив в флэш - Program Size: Code=3824 RO-data=396 RW-data=120 ZI-data=1632
Массив в RAM - Program Size: Code=3824 RO-data=316 RW-data=200 ZI-data=1632
__________________
Осторожно , злой кот

Последний раз редактировалось dosikus; 04.06.2014 в 12:46.
dosikus вне форума  
Непрочитано 04.06.2014, 13:38  
MaxiMuz79
Гражданин KAZUS.RU
 
Аватар для MaxiMuz79
 
Регистрация: 06.04.2010
Адрес: Санкт-Петербург - Волжский
Сообщений: 529
Сказал спасибо: 74
Сказали Спасибо 56 раз(а) в 45 сообщении(ях)
MaxiMuz79 на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

Сообщение от dosikus Посмотреть сообщение
MaxiMuz79, Да ну... Так уж без const и нет изменений ?
В моем случае, когда коментирую const
Код:
//const 
u8 CodeKey[12]={1,4,7,11,2,5,8,10,3,6,9,12};
изменений нет, размеры остаются прежними:
Program Size: Code=4372 RO-data=320 RW-data=72 ZI-data=1776
MaxiMuz79 вне форума  
Непрочитано 04.06.2014, 14:13  
pambaru
Почётный гражданин KAZUS.RU
 
Регистрация: 24.03.2007
Сообщений: 1,360
Сказал спасибо: 85
Сказали Спасибо 619 раз(а) в 374 сообщении(ях)
pambaru на пути к лучшему
По умолчанию Re: Keil v4.7: Где размещаются данные описанные const ?

а тип u8 как объявлен?
Если объявить, к примеру:

typedef unsigned char byte;
const byte CodeKey[]={1,4,7,11,2,5,8,10,3,6,9,12};
то размещает в ПЗУ, а если:

typedef volatile unsigned char byte;
const byte CodeKey[]={1,4,7,11,2,5,8,10,3,6,9,12};

то в ОЗУ.
pambaru вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где найти справочные данные?.. Frol_Kiev Поиск схем. Делимся схемами 1 11.10.2006 02:34


Часовой пояс GMT +4, время: 05:46.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot