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

 
 
> Массив констант разместить во flash памяти.
Dan_Dima
сообщение Feb 14 2007, 22:35
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 18-01-07
Пользователь №: 24 530



Необходимо массив констант разместить во flash памяти. Как это сделать в C (компилятор IAR). Массив задаеться изначально и потом не меняеться.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Dan_Dima
сообщение Feb 15 2007, 15:31
Сообщение #2


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 18-01-07
Пользователь №: 24 530



Все спасибо за помощь. Все правильно мой глюк smile.gif массив у меня изначально записывался во flash меня смутило что через дебагер видно что он массив при работе копирунт в RAM. В звязи с этим вопрос как от этого избавиться. Массив продекларирован в глобальной области
Go to the top of the page
 
+Quote Post
rezident
сообщение Feb 15 2007, 15:42
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Dan_Dima @ Feb 15 2007, 17:31) *
через дебагер видно что он массив при работе копирунт в RAM. В звязи с этим вопрос как от этого избавиться.

Приведите исходный код для изучения такого странного поведения компилятора. Вы printf/sprintf для работы с этим массивом случайно не используете?
Go to the top of the page
 
+Quote Post
Dan_Dima
сообщение Feb 15 2007, 17:03
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 19
Регистрация: 18-01-07
Пользователь №: 24 530



Цитата(rezident @ Feb 15 2007, 15:42) *
Цитата(Dan_Dima @ Feb 15 2007, 17:31) *

через дебагер видно что он массив при работе копирунт в RAM. В звязи с этим вопрос как от этого избавиться.

Приведите исходный код для изучения такого странного поведения компилятора. Вы printf/sprintf для работы с этим массивом случайно не используете?


const unsigned char addres[128]= {0x01,0x02,0x5a,0x51,0x52,0x53,0x54,0x56,0x57,0x58, //1
0x59,0x4d,0x50,0x5b,0x03,0x0c,0x0d,0x0e,0x0f,0x33, //2
0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D, //3
0x3e,0x4a,0x41,0x42,0x43,0x44,0x45,0x49,0x46,0x47, //4
0x48,0x4c,0x40,0x4b,0x70,0x71,0x72,0x60,0x6a,0x6b, //5
0x6c,0x6d,0x6e,0x6f,0x74,6,7,8,9,10, //6
1,2,3,4,5,6,7,8,9,10, //7
1,2,3,4,5,6,7,8,9,10, //8
1,2,3,4,5,6,7,8,9,10, //9
1,2,3,4,5,6,7,8,9,10, //10
1,2,3,4,5,6,7,8,9,10, //11
1,2,3,4,5,6,7,8,9,10, //12
1,2,3,4,5,6,7,8}; //13

const unsigned char byte[128]= {0x40,0x00,0x85,0x01,0x00,0x00,0x00,0x03,0x00,0x00, //1
0x00,0x00,0x10,0x00,0x00,0x14,0x28,0x42,0x56,0x0a, //2
0x03,0x03,0x00,0xff,0xff,0x85,0x34,0xa2,0x38,0x98, //3
0x00,0x84,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00, //4
0x00,0x00,0x40,0x01,0x82,0x00,0x00,0x00,0x00,0x00, //5
0x00,0x00,0x00,0x00,0x01,6,7,8,9,10, //6
1,2,3,4,5,6,7,8,9,10, //7
1,2,3,4,5,6,7,8,9,10, //8
1,2,3,4,5,6,7,8,9,10, //9
1,2,3,4,5,6,7,8,9,10, //10
1,2,3,4,5,6,7,8,9,10, //11
1,2,3,4,5,6,7,8,9,10, //12
1,2,3,4,5,6,7,8}; //13


void write_spi( char addr,unsigned wr_byte)
{
int i;
mask=128;
SCSN_DOWN;
delay();
//send byte addres ///
for (i=7;i>=0;i--)
{
SSCK_DOWN;
if ((GET_BIT(addr,mask))!=0) { MOSI_1; } else { MOSI_0; };
mask>>=1;
NOP; NOP;
SSCK_UP;
NOP; NOP;
};
//send byte addres ///
delay();
//write byte from nRF
mask=1;
for (i=7;i>=0;i--)
{
SSCK_DOWN;
if ((GET_BIT(wr_byte,mask))!=0) { MOSI_1; } else { MOSI_0; };
mask<<=1;
NOP;NOP;
SSCK_UP;
NOP; NOP;
};
//write byte from nRF
delay();
SCSN_UP;
};

void main( void )
{



unsigned char i;
WDTCTL = WDTPW + WDTHOLD;
BCSCTL1=RSEL3+XT2OFF;
Init_spi();
while(1)
{
for (i=0;i<55;i++)
{
write_spi(addres[i],byte[i]);
};
while(1);
};
// return 0;
}
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dan_Dima   Массив констант разместить во flash памяти.   Feb 14 2007, 22:35
- - jorikdima   const int arr[10]   Feb 14 2007, 22:44
|- - Dan_Dima   Цитата(jorikdima @ Feb 14 2007, 22:44) co...   Feb 14 2007, 23:13
|- - rezident   Цитата(Dan_Dima @ Feb 15 2007, 01:13) Цит...   Feb 14 2007, 23:43
- - Alex11   Есть еще прямой модификатор __flash. Я только не п...   Feb 15 2007, 01:19
|- - rezident   Цитата(Alex11 @ Feb 15 2007, 03:19) Есть ...   Feb 15 2007, 02:07
- - VAI   Цитата(Dan_Dima @ Feb 15 2007, 00:13) Цит...   Feb 15 2007, 07:26
- - rvk   const word mnday @0xС600 = {....} размещает по за...   Feb 15 2007, 08:44
- - jorikdima   вы все таки наверно хотели спрость/сказать следующ...   Feb 15 2007, 10:08
- - VAI   да не переписывается он в РАМ и читается из флэшь,...   Feb 15 2007, 10:48
- - Serg_el   Вот назрел вопрос... Если я хочу записать констант...   Jul 24 2008, 10:01
|- - gotty   Цитата(Serg_el @ Jul 24 2008, 13:01) Вот ...   Jul 24 2008, 12:27
|- - Serg_el   Цитата(gotty @ Jul 24 2008, 16:27) Прошу ...   Jul 24 2008, 12:40
|- - gotty   Цитата(Serg_el @ Jul 24 2008, 15:40) Я ин...   Jul 24 2008, 12:43
|- - Serg_el   Цитата(gotty @ Jul 24 2008, 16:43) В тако...   Jul 24 2008, 12:52
|- - gotty   Цитата(Serg_el @ Jul 24 2008, 15:52) Ну п...   Jul 24 2008, 12:58
|- - Serg_el   Цитата(gotty @ Jul 24 2008, 16:58) Вы же ...   Jul 24 2008, 13:07
|- - gotty   Цитата(Serg_el @ Jul 24 2008, 16:07) Запи...   Jul 24 2008, 13:12
||- - Serg_el   Цитата(gotty @ Jul 24 2008, 17:12) А в чё...   Jul 24 2008, 13:17
|- - rezident   Цитата(Serg_el @ Jul 24 2008, 19:07) Прои...   Jul 24 2008, 13:31
|- - Serg_el   Цитата(rezident @ Jul 24 2008, 17:31) Реч...   Jul 24 2008, 13:56
- - VAI   ну и обратитесь где нибудь к нему, как к "х...   Jul 24 2008, 11:08
- - Serg_el   Цитата(VAI @ Jul 24 2008, 15:08) ну и обр...   Jul 24 2008, 11:43


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

 


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


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