Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 04.03.2019, 11:50   #1
Abivan
Member
 
Регистрация: 26.02.2007
Сообщений: 71
Вес репутации: 242/48
Abivan has a spectacular aura aboutAbivan has a spectacular aura aboutAbivan has a spectacular aura about
По умолчанию PIC32 XC32 Linker. Как весь проект разместить на старших адресах, начиная с середины кодовой памяти.

Проект не будет использовать прерывания.
Пробовал разобраться с procdefs.ld ни хрена не понимаю.
Создать свою секцию и разместить там свои ф-ии это пожалуйста, а как передвинуть весь проект?

Хочу этот проект добавить к основному, как loadables.
в пик18 HT-PICC все было просто, здесь же виртуальные адреса и куча всяких секций. В xc8 была возможность задать смещение кода.
Abivan вне форума   Ответить с цитированием
Старый 04.03.2019, 13:30   #2
Vint
Senior Member
 
Аватар для Vint
 
Регистрация: 08.06.2007
Сообщений: 528
Вес репутации: 838/58
Vint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to behold
По умолчанию Re: PIC32 XC32 Linker. Как весь проект разместить на старших адресах, начиная с середины кодовой памяти.

посмотрите с бутлодырем файл ....ld,
может поможет.
Vint вне форума   Ответить с цитированием
Старый 04.03.2019, 13:38   #3
Abivan
Member
 
Регистрация: 26.02.2007
Сообщений: 71
Вес репутации: 242/48
Abivan has a spectacular aura aboutAbivan has a spectacular aura aboutAbivan has a spectacular aura about
По умолчанию Re: PIC32 XC32 Linker. Как весь проект разместить на старших адресах, начиная с середины кодовой памяти.

эт первое что глянул, там темный лес. куча секций и вектора прерываний. Если никто здесь ничего не подскажет(на сахАре уже спрашивал) придется самому во всем этом разбираться. :-(
День уже потратил на просмотр .ld и доки по линкеру. Поверхностного знакомства не хватило.
Процесс идет неспешно, время терпит. Пока полно других задач.
Abivan вне форума   Ответить с цитированием
Старый 04.03.2019, 14:16   #4
Vint
Senior Member
 
Аватар для Vint
 
Регистрация: 08.06.2007
Сообщений: 528
Вес репутации: 838/58
Vint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to beholdVint is a splendid one to behold
По умолчанию Re: PIC32 XC32 Linker. Как весь проект разместить на старших адресах, начиная с середины кодовой памяти.

ну Ватсон, это же элем....


вот ld для бутлодыря (uart_btl_ex16.ld)
и ld проекта (procdefs.ld).


проект будет загружен с 2000 адреса.
и бл и прект расположатся в программ
мемори. возьмите карту памяти из дш
и все разложите по секциям.
Вложения
Тип файла: rar ld-linker.rar (7.7 Кб, 2 просмотров)
Vint вне форума   Ответить с цитированием
Старый 04.03.2019, 14:17   #5
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,140
Вес репутации: 4017/87
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC32 XC32 Linker. Как весь проект разместить на старших адресах, начиная с середины кодовой памяти.

Abivan
в xc32 самый обычный древний gnu ld.

плохо понимаю, что Вы хотите.
однако у меня сложилось впечатление, что Вы не использовать какие-то адреса во flash.

допустим вот у Вас разбиение памяти:
Код:
MEMORY
{
	
/*************************************************************************
 * kseg1
 *************************************************************************/	

	config0				: ORIGIN = 0xBFC00BFC, LENGTH = 0x4  
	config1				: ORIGIN = 0xBFC00BF8, LENGTH = 0x4
	config2			   	: ORIGIN = 0xBFC00BF4, LENGTH = 0x4
	config3				: ORIGIN = 0xBFC00BF0, LENGTH = 0x4
	
	kseg1_boot_mem     (rx)     	: ORIGIN = 0xBFC00000	, LENGTH = 0xbf0 - 0x760
	kseg1_debug_exec_mem            : ORIGIN = 0xBFC00490	, LENGTH = 0x760
	kseg1_program_mem(rx)		: ORIGIN = 0xBD000000	, LENGTH = ROM_SIZE - USER_ROM_SIZE
	kseg1_data_mem	(w!x)		: ORIGIN = 0xA0000000	, LENGTH = RAM_SIZE - USER_RAM_SIZE

	kseg2_data_mem	(w!x)		: ORIGIN = 0xF0000000	, LENGTH = RAM_SIZE
	
/*************************************************************************
 * kseg0
 *************************************************************************/		
 
	kseg0_config0                 	: ORIGIN = 0x9FC00BFC	, LENGTH = 0x4  
	kseg0_config1                 	: ORIGIN = 0x9FC00BF8	, LENGTH = 0x4
	kseg0_config2                 	: ORIGIN = 0x9FC00BF4	, LENGTH = 0x4
	kseg0_config3                 	: ORIGIN = 0x9FC00BF0	, LENGTH = 0x4
	
	kseg0_boot_mem          (rx)  	: ORIGIN = 0x9FC00000	, LENGTH = 0xbf0 - 0x760
	debug_exec_mem                  : ORIGIN = 0x9FC00490	, LENGTH = 0x760

	kuseg_program_mem_eq	(rx)	: ORIGIN = 0x9D000000 + ROM_SIZE - USER_ROM_SIZE, LENGTH = USER_ROM_SIZE
/*-----------------------------------ROM--------------------------------------*/	
	exception_mem 			(rx)	: ORIGIN = 0x9D000000 , LENGTH = EXEPT_MEM_SIZE
	kseg0_program_mem 		(rx)	: ORIGIN = 0x9D000000 + EXEPT_MEM_SIZE,	LENGTH = ROM_SIZE - USER_ROM_SIZE - EXEPT_MEM_SIZE - SAVED_DATA_SIZE - 4
	kseg0_flash_mark		(r)	: ORIGIN = 0x9D000000 + ROM_SIZE - SAVED_DATA_SIZE - 4, LENGTH = 4
	kseg0_saved_data		(rx)    : ORIGIN = 0x9D000000 + ROM_SIZE - SAVED_DATA_SIZE, LENGTH = SAVED_DATA_SIZE
	

/*-----------------------------------RAM--------------------------------------*/


	kuseg_data_mem_eq	(w!x)	: ORIGIN = 0x80000000 + RAM_SIZE , 	LENGTH = USER_RAM_SIZE
	kseg0_data_mem		(w!x)	: ORIGIN = 0x80000000, 			LENGTH = RAM_SIZE - USER_RAM_SIZE	
	kuseg_data_mem		(w!x)	: ORIGIN = 0x7F000000 + RAM_SIZE, 	LENGTH = USER_RAM_SIZE


	kuseg_program_mem	(rx)	: ORIGIN = 0x7D000000 + ROM_SIZE - USER_ROM_SIZE, LENGTH = USER_ROM_SIZE	

	sfrs				: ORIGIN = 0xBF800000, LENGTH = 0x100000 	
}
там строчка
Код:
kseg0_program_mem 		(rx)	: ORIGIN = 0x9D000000 + EXEPT_MEM_SIZE,	LENGTH = ROM_SIZE - USER_ROM_SIZE - EXEPT_MEM_SIZE - SAVED_DATA_SIZE - 4
это расположение памяти в памяти, в эту память попадает куча секций.
Расположив эту память начиная не с 0x9D000000, а с 0x9D000000 + смещение, Вы не будете использовать какой-то диапазон flash.
besogon вне форума   Ответить с цитированием
Старый 04.03.2019, 14:29   #6
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,140
Вес репутации: 4017/87
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC32 XC32 Linker. Как весь проект разместить на старших адресах, начиная с середины кодовой памяти.

Забыл, то, что я написал верно для pic32mx1xx2xx5xx, у которых нет prefetch cache.

Для других решений, естественно, будут особенности.
besogon вне форума   Ответить с цитированием
Старый 04.03.2019, 15:19   #7
Abivan
Member
 
Регистрация: 26.02.2007
Сообщений: 71
Вес репутации: 242/48
Abivan has a spectacular aura aboutAbivan has a spectacular aura aboutAbivan has a spectacular aura about
По умолчанию Re: PIC32 XC32 Linker. Как весь проект разместить на старших адресах, начиная с середины кодовой памяти.

спасибо. прогу удалось расположить с нужного адреса
заменой строки в файле procdefs.ld
/*kseg0_program_mem (rx) : ORIGIN = 0x9D000000, LENGTH = 0x80000*/
kseg0_program_mem (rx) : ORIGIN = 0x9D000000+0x40000, LENGTH = 0x40000
теперь попробую добавить этот проект как loadables к основному и из основного вызвать ф-ю loadables проекта. Надо посмотреть не будет ли накладок с векторами прерывания. Пока буду пробовать . Возникнут вопросы напишу.
PIC32MX370F512H
Abivan вне форума   Ответить с цитированием
Старый 04.03.2019, 15:44   #8
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 32
Сообщений: 2,140
Вес репутации: 4017/87
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: PIC32 XC32 Linker. Как весь проект разместить на старших адресах, начиная с середины кодовой памяти.

Abivan
этот проект как loadables к основному и из основного вызвать ф-ю loadables проекта - я не использовал такую функциональность.

у меня в проекте явным образом указывалось всё, что касалось проекта.
besogon вне форума   Ответить с цитированием
Ответ

Метки
linker, pic32, xc32


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем/как отлаживать код написаный на Си в WinAVR Yokel Микроконтроллеры других производителей 49 30.09.2014 09:48
Многофункциональные часы. Н.Заяц.Книга 4. samko Вопросы начинающих 11 12.06.2012 09:26
Имитатор DS18B20 Filya44 Вопросы начинающих 14 12.03.2012 17:39
PIC16F84a stepka Вопросы начинающих 56 24.03.2010 18:30
подключение магнитолы Sergey1 Общетехнические вопросы 10 27.12.2007 22:39


Часовой пояс GMT +3, время: 11:38.


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