セクションアドレス演算子の一覧を表 4.11に示します。
|
|
|
1
|
__sectop("<セクション名>")
|
<セクション名>の先頭アドレスを返します。
|
2
|
__secend("<セクション名>")
|
<セクション名>の先頭アドレスに、<セクション名>のサイズを加算した値を返します。
|
3
|
__secsize("<セクション名>")
|
<セクション名>のサイズを返します。
|
[型]
__sectop の型は、void * です。
__secendの型は、void * です。
__secsizeの型は、unsigned long です。
[例]
例1: __sectop, __secend
#include <machine.h>
#pragma section $DSEC
static const struct {
void *rom_s; /* 初期化データセクションのROM 上の先頭アドレス */
void *rom_e; /* 初期化データセクションのROM 上の最終アドレス */
void *ram_s; /* 初期化データセクションのRAM 上の先頭アドレス */
} DTBL[]={__sectop("D"), __secend("D"), __sectop("R")};
#pragma section $BSEC
static const struct {
void *b_s; /* 未初期化データセクションの先頭アドレス */
void *b_e; /* 未初期化データセクションの最終アドレス */
} BTBL[]={__sectop("B"), __secend("B")};
#pragma section
#pragma stacksize si=0x100
#pragma entry INIT
void main(void);
void INIT(void)
{
_INITSCT();
main();
sleep();
}
|
例2: __secsize
/* size of section B */
unsigned int size_of_B = __secsize("B");
|
[備考]
PIC/PID機能が有効なアプリケーションの場合、__sectopおよび__secendはリンク時のアドレスで処理します。
PIC/PID機能の詳細は、picおよびpidオプションと、「8.5 PIC/PID機能の利用」の項目をそれぞれ参照してください。