(toppers-users 4795) Re: STM32F768/HRP2 Build エラー回避策のご相談

Hiroaki TAKADA hiro @ ertl.jp
2018年 12月 8日 (土) 09:50:46 JST


柴田様
Cc: TOPPERSユーザの皆様

名古屋大学の高田です。

GNUリンカの振る舞いは,謎が多く,動作させてみないとわからないところ
があります。ですので,自信はありませんが,

> ld.exe: error: no memory region specified for loadable section .ARM.exidx

このエラーメッセージを素直に読むと,.ARM.exidx セクションにメモリリー
ジョンが指定されていない,ということですので,リンカスクリプト中の

> 	.ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }

の最後に「> FLASH」をつけると良いように思います。

高田広章
名古屋大学

On 2018/12/07 18:03, 柴田豊 wrote:
> TOPPERSプロジェクト御中
> お世話になります。
> 
> 柴田 豊と申します。
> Build エラーの回避策をご相談させて下さい。
> お忙しいところ誠に申し訳ございませんがよろしくお願い申し上げます。
> 
> 【経緯】
> ST社製 STM32F769 Discovery ボードに TOPPERS/HRP2 の搭載を行なっております。
> ダウンロードページに公開されております、同系列の簡易パッケージSTM32F401RE/HRP2 をダウンロードし、Arch/gcc依存部及びTarget依存部にST社のSTM32Cube より stm32f7 ライブラリをコピーしました。
> 
> build を行うと、cfg2_out パス2で
> ld.exe: error: no memory region specified for loadable section .ARM.exidx
> が発生し、先へ進めません。
> 
> 【質問】
> 上記のビルドエラーの回避策をご教示下さい。
> お手数をお掛け致します。
> 
> 【参考】
> stm32f769i.ld ファイルは、メモリサイズ以外STM32F401と同じ内容です。以下、ld ファイルの記述です。
> MEMORY
> {
>    FLASH (rx)      : ORIGIN = 0x08000000, LENGTH = 2048K
>    SRAM (xrw)      : ORIGIN = 0x20000000, LENGTH = 512K
> }
> 
> PROVIDE(hardware_init_hook = 0);
> PROVIDE(software_init_hook = 0);
> PROVIDE(software_term_hook = 0);
> PROVIDE(_kernel_datasecinib_table = 0);
> PROVIDE(_kernel_tnum_datasec = 0);
> PROVIDE(_kernel_bsssecinib_table = 0);
> PROVIDE(_kernel_tnum_bsssec = 0);
> STARTUP(start.o)
> 
> SECTIONS
> {
> 	.text :
> 	{
> 		__text = .;
> 		*(.vector)
> 		*(.text)
> 		*(.text.*)
> 	} > FLASH
> 	_etext = .;
> 	PROVIDE(etext = .);
> 
> 	.rodata :
> 	{
> 		*(.rodata)
> 		*(.rodata.*)
> 	} > FLASH
> 
> 	.ARM.extab   : { *(.ARM.extab* .gnu.linkonce.armextab.*) }
> 	__exidx_start = .;
> 	.ARM.exidx   : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) }
> 	__exidx_end = .;
> 
> 	__idata_start = .;
> 	.data : AT (__idata_start)
> 	{
> 		__data_start = .;
> 		*(.data)
> 		*(.data.*)
> 	} > SRAM
> 	__idata_end = __idata_start + SIZEOF(.data);
> 	_edata = .;
> 	PROVIDE(edata = .);
> 
> 	. = ALIGN(4);
> 
> 	.bss :
> 	{
> 		__bss_start  = .;
> 		*(.bss)
> 		*(.bss.*)
> 		*(COMMON)
> 		. = ALIGN(4);
> 	} > SRAM
> 	. = ALIGN(4);
> 	_end = .;
> 	__bss_end = .;
> 	PROVIDE(end = .);
> }
> よろしくお願い申し上げます。
> 柴田 豊
>