: 2007 12 7 6: 2009 5 9 TOPPERS 1.... 4 1.1... 4 1.2 TOPPERS... 4 2.... 4 2.1... 4 3.... 8 4.... 9 4.1... 9 4.2... 10 4.3... 10 4.3.1... 11 4.3.2 INCLUDE... 11 4.3.3 C... 12 4.4 API... 14 4.2.1 API... 14 4.2.2... 15 5. ID... 16 5.1 --id-input-file... 16 5.2 --id-output-file... 16 6. API... 17 6.1 API... 17 6.1.1... 17 6.1.2 API... 17 6.1.3... 17 6.1.4 ID... 18 1
6.1.5... 18 7.... 19 7.1... 19 7.1.1... 19 7.1.2... 19 7.1.3... 19 8.... 20 8.1... 20 8.1.1... 20 8.1.2 msgid... 20 8.1.3 msgstr... 20 8.1.4... 21 8.2... 21 9. C... 22 9.1 C... 22 9.1.1 TOPPERS_CFG1_OUT... 22 9.2 C... 22 9.3 C... 23 9.3.1 kernel_int.h... 23 9.3.2 #include... 23 9.3.3 target_cfg1_out.h... 23 2
2007 12 7 2008 4 1 2.1 6. API 7. 9. C 2008 4 18 9.1 C 9.3 C 2008 4 30 7.1.3 1, 0 s signed, u 6.1.1 6.1.3 7.1.1 7.1.3 6. API 7. 2008 12 16 --id-input-file 1 6.1.5 4.2.1 KERNEL_DOMAIN 2009 1 26 3. 4 2009 5 9 7.1.2 # 3
1. 1.1 TOPPERS/ASP TOPPERS TOPPERS TOPPERS/ASP TOPPERS 1.2 TOPPERS TOPPERS PC 2. Bash cfg 2.1 4
-- = --help --version v --kernel k = TOPPERS/ASP asp TOPPERS/FMP fmp asp --pass p = 3. --help, version, --print-dependencies --include-path I = INCLUDE $INCLUDE$ --template-file T = 2 3 --input-charset = 5
--api-table = API 6. API --cfg1-def-table = 7. --cfg1_out = 1 C cfg1_out.c cfg1_out --rom-image r = ROM ROM S 3 --symbol-table s = GNU NM -C C C _ --cfg-directory d = cfg cfg.exe PATH PATH 6
--msgcat-directory m = --destination-directory n = --id-output-file = 1 2 --id-input-file = --id-output-file --alignof-fp = --external-id USE_EXTERNAL_ID 1 USE_EXTERNAL_ID 0 2 3 --print-dependencies M = GNU Make 7
3. 1 2 3 1 1 1 1 cfg1_out.c C cfg1_out.c API C cfg1_out.c C S S cfg1_out.srec cfg1_out.syms --cfg1_out 2 2 1 cfg1_out.c cfg1_out.srec cfg1_out.syms cfg1_out.c API cfg1_out.srec cfg1_out.c --template-file cfg1_out.srec 2 kernel_cfg.h kernel_cfg.c 8
3 3 3 3 1 cfg1_out.c cfg1_out.srec cfg1_out.syms S --rom-image --symbol-table --template-file 2 cfg1_out.srec 3 2 API 4 4 3 4. 4.1 system configuration file API API INCLUDE 4.3.2 4.3.1 C 4.3.3 9
4.2 C C # C 0xfe-1 C {0xfe} {-} {1} cfg1_out.c C API API cfg_out.c kernel_cfg.c 4.3 API INCLUDE C C 1. 2. 3. 4. 0
4.3.1 C /* */ C++ // C++ 4.3.2 INCLUDE INCLUDE include-directive ::= INCLUDE ( header-name ) ; header-name ::= < h-char-sequence > q-char-sequence h-char-sequence ::= h-char h-char-sequence h-char h-char ::= [^>] q-char-sequence ::= q-char q-char-sequence h-char q-char ::= [^ ] INCLUDE(" "); INCLUDE(< >); \ 1
INCLUDE INCLUDE INCLUDE 1. 2. --include-path --include-file 3. 4.3.3 C C #include #if #ifdef #ifndef #else #elif #endif #pragma API C API 2
#ifdef ABC #include abc.h #endif ABC abc.h abc.h API CLASS DOMAIN CRE_TSK(TASK1, { #ifdef ABC // API TA_ACT, #else TA_NULL, #endif 0, task, MID_PRIORITY, STACK_SIZE, NULL }); #ifdef DEF // CLASS(CLS1) { #endif CRE_TSK(TASK2, { TA_NULL, 0, task, MID_PRIORITY, STACK_SIZE, NULL }); #ifdef DEF } #endif 3
#pragma once #pragma once INCLUDE 4.4 API C API API API C API { } 4.2.1 API API BNF statement ::= simple-statement compound-statement simple-statement ::= api-name ( parameter-list ) ; compound-statement ::= block-api-name ( identifier ) { statement } KERNEL_DOMAIN { statement } api-name ::= identifier block-api-name ::= CLASS DOMAIN parameter-list ::= parameter parameter-list, parameter 4
parameter ::= packet constant-expression packet ::= { parameter-list } constant-expression C ISO/IEC 9899:1990 C90 ISO/IEC 9899:1999 _near, _far 4.2.2 API (a) ID API CRE_??? ID ID C #define API ID API DEF_TEX tskid (b) (c) (d) 5
C 5. ID ITRON 4.0 ID ID 5.1 --id-input-file --id-input-file ID ID ID ID ID ID ID ID 1 --id-input-file ID ID 5.2 --id-output-file --id-output-file ID --id-input-file 6
6. API API API API --api-table API 6.1 API API CSV RFC4180 CR LF CR LF API [ ],[ API ],[ ],[ID ],[ ] 6.1.1 3 tsk 6.1.2 API API 6.1.3 API {} 7
# %. + & $ % DEF_TEX tskid API ASP CRE_TSK DEF_TEX #tskid { +tskatr &exinf &task +itskpri.stksz &stk } %tskid { +texatr &texrtn }? API } ) 6.1.4 ID ID ID 0 1, 2, 3, ATT_INI ID -1 ID ID 0 6.1.5 DEF_TEX API 1 1 API 0 8
7. C --cfg1-def-table 7.1 CSV RFC4180 CR LF CR LF [ ],[ ],[ ] 7.1.1 7.1.2 C # 1 0 7.1.3 s signed u u 9
8. 8.1 UTF-8 BOM msgid msgstr 8.1.1 # 8.1.2 msgid msgid _ _ msgid msgid C 8.1.3 msgstr msgstr msgid _ _ msgid 0
msgstr msgstr msgstr C 8.1.4 msgid C printf msgid printf Boost C++ Libraries boost::format boost::format boost::format % % %1% %2% %3%, %4%, %5%,..., %n% %d %g int long double long double 8.2 TOPPERS_CFG_LANG TOPPERS_CFG_LANG.po ja.po TOPPERS_CFG_LANG ja 1
--msgcat-directory 9. C 1 C C cfg1_out.c --cfg1_out C C API C C S cfg1_out.srec cfg1_out.syms 2 3 9.1 C C 9.1.1 TOPPERS_CFG1_OUT C TOPPERS_CFG1_OUT 1 C 9.2 C C signed_t unsigned_t const signed_t unsigned_t 64 64 32 C C TOPPERS_cfg_magic_number 2
signed_t TOPPERS_cfg_sizeof_signed_t signed_t unsigned_t uint32_t C TOPPERS_cfg_ TOPPERS_cfg_ 9.3 C C 9.3.1 kernel_int.h kernel_int.h 9.3.2 #include #include 9.3.3 target_cfg1_out.h target_cfg1_out.h cfg1_out.c 3