Перейти к содержанию
    

STM32L476 Keil размещение массива по определенному адресу

Есть бутлоадер и есть прошивка. Как передать прошивке текстовую строку? Т.е. массив. Секцию .noinit я в скаттере сделал в обоих проектах. Как поместить массив в эту секцию чтобы он начинался с конкретного адреса?

LR_IROM1 0x08000000 0x00100000      ; load region size_region
{
  ER_IROM1 0x08000000 0x00100000	; load address = execution address
	{
		*.o (RESET, +First)
		*(InRoot$$Sections)
		.ANY (+RO)
	}
  RW_IRAM1 0x20000000 0x00018000  	; RW data
	{
		.ANY (+RW +ZI)
	}
  RW_IRAM2 0x10000000 UNINIT 0x0000200 ;no init section. 
	{
		*(.noinit )
		
	}
  RW_IRAM3 0x10000200 UNINIT 0x0000200 ;no init section. 
	{
		URLTCP(.noinit )
		main.o (+RW +ZI)
	}
	
  RW_IRAM4 0x10000400 0x00008000 - 0x400 	
	{
		.ANY (+RW +ZI)
	}
}

  Я прописал         main.o (+RW +ZI). Но тогда в этой секции присутствуют все переменные. А мне надо чтобы был только массив.

char URLTCP[128] __attribute__ ((section ("(URLTCP) .noinit"),zero_init));

Map файл:

 

Quote

   Execution Region RW_IRAM3 (Base: 0x10000200, Size: 0x00000088, Max: 0x00000200, ABSOLUTE, UNINIT)

    Base Addr    Size         Type   Attr      Idx    E Section Name        Object

    0x10000200   0x00000002   Data   RW           24    .data               main.o
    0x10000202   0x00000002   PAD
    0x10000204   0x00000080   Zero   RW           22    () .noinit          main.o

 

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отвечаю сам себе 

char URLTCP[128] __attribute__ ((at(0x10000200), zero_init));
LR_IROM1 0x08000000 0x00100000      ; load region size_region
{
  ER_IROM1 0x08000000 0x00100000	; load address = execution address
	{
		*.o (RESET, +First)
		*(InRoot$$Sections)
		.ANY (+RO)
	}
  RW_IRAM1 0x20000000 0x00018000  	; RW data
	{
		.ANY (+RW +ZI)
	}
  RW_IRAM2 0x10000000 UNINIT 0x0000200 ;no init section. 
	{

	}
  RW_IRAM3 0x10000200 UNINIT 0x0000200 ;no init section. 
	{
		*(.ARM.__AT_0x10000200)
	}
  RW_IRAM4 0x10000400 0x00008000 - 0x400 	
	{
		.ANY (+RW +ZI)
	}
}

 

Изменено пользователем Димон Безпарольный

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...