NXT で作業したい C++ プロジェクトがいくつかあるので、nxtOSEK を起動して実行しようとしてきました。Web を検索したところ、そうするための最も推奨されるシステムであると思われました。
ブリックを更新してセットアップするためにこのチュートリアル (私は Mac を使用しています) に従ってきましたが、サンプル プログラムをコンパイルしてブリックにダウンロードするところまでたどり着きました。
ただし、helloworld プログラム (「OSEK HelloWorld」をブリックの画面に出力するだけ) をコンパイルして実行すると、画面がゴミ文字でいっぱいになり、電源をリセットすることによってのみ元に戻すことができます。
編集
ビルド プロセス中に、次のエラーに気付きました。
err:wineconsole:WCUSER_SetFont wrong font
err:wineconsole:WCUSER_SetFont wrong font
それはおそらく問題の一部でしょうか?
楽しみのために、ビルド プロシージャ全体をダンプします。
espais@computron~/Desktop/nxtOSEK/samples_c/helloworld$ make all
Compiling ../../ecrobot/../toppers_osek/kernel/alarm.c to alarm.o
Compiling ../../ecrobot/../toppers_osek/kernel/event.c to event.o
Compiling ../../ecrobot/../toppers_osek/kernel/interrupt.c to interrupt.o
Compiling ../../ecrobot/../toppers_osek/kernel/osctl.c to osctl.o
Compiling ../../ecrobot/../toppers_osek/kernel/resource.c to resource.o
Compiling ../../ecrobot/../toppers_osek/kernel/task.c to task.o
Compiling ../../ecrobot/../toppers_osek/kernel/task_manage.c to task_manage.o
Compiling ../../ecrobot/../toppers_osek/config/at91sam7s-gnu/cpu_config.c to cpu_config.o
Compiling ../../ecrobot/../toppers_osek/config/at91sam7s-gnu/lego_nxt/sys_config.c to sys_config.o
Generating OSEK kernel config files from ./helloworld.oil
err:wineconsole:WCUSER_SetFont wrong font
err:wineconsole:WCUSER_SetFont wrong font
Compiling kernel_cfg.c to kernel_cfg.o
Compiling ../../ecrobot/../ecrobot/c/syscalls.c to syscalls.o
Compiling ../../ecrobot/../ecrobot/c/ecrobot_bluetooth.c to ecrobot_bluetooth.o
Compiling ../../ecrobot/../ecrobot/c/ecrobot_base.c to ecrobot_base.o
Compiling ../../ecrobot/../ecrobot/c/ecrobot.c to ecrobot.o
Compiling helloworld.c to helloworld.o
Compiling ../../ecrobot/../toppers_osek/syslib/at91sam7s-gnu/lego_nxt/hw_sys_timer.c to hw_sys_timer.oram
Assembling ../../ecrobot/../lejos_nxj/src/nxtvm/platform/nxt/vectors.s to vectors.o
Assembling ../../ecrobot/../toppers_osek/config/at91sam7s-gnu/debug.S to debug.o
Assembling ../../ecrobot/../toppers_osek/config/at91sam7s-gnu/lego_nxt/sys_support.S to sys_support.o
Assembling ../../ecrobot/../ecrobot/c/nxt_binary_header.s to nxt_binary_header.o
Assembling ../../ecrobot/../ecrobot/c/nxt_entry_point.s to nxt_entry_point.o
Assembling ../../ecrobot/../ecrobot/c/ecrobot_init.s to ecrobot_init.o
Assembling ../../ecrobot/../toppers_osek/config/at91sam7s-gnu/cpu_support.S to cpu_support.oram
Assembling ../../ecrobot/../toppers_osek/config/at91sam7s-gnu/irq.s to irq.oram
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_udivsi3.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_divsi3.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_umodsi3.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_modsi3.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_dvmd_tls.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_addsubdf3.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_muldivdf3.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_cmpdf2.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_muldi3.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_divdi3.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_clzsi2.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-memcpy.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-memset.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strcmp.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strcpy.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strlen.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strncpy.o) does not support interworking, whereas helloworld_OSEK_rom.elf does
Generating binary image file: helloworld_OSEK_rom.bin
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_udivsi3.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_divsi3.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_umodsi3.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_modsi3.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_dvmd_tls.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_addsubdf3.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_muldivdf3.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_cmpdf2.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_muldi3.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_divdi3.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_clzsi2.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-memcpy.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-memset.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strcmp.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strcpy.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strlen.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strncpy.o) does not support interworking, whereas helloworld_OSEK_ram.elf does
Generating binary image file: helloworld_OSEK_ram.bin
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_udivsi3.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_divsi3.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_umodsi3.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_modsi3.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_dvmd_tls.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_addsubdf3.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_muldivdf3.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_arm_cmpdf2.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_muldi3.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_divdi3.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/thumb/libgcc.a(_clzsi2.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-memcpy.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-memset.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strcmp.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strcpy.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strlen.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
/opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/bin/ld: Warning: /opt/local/lib/gcc/arm-elf/4.6.1/../../../../arm-elf/lib/thumb/libc.a(lib_a-strncpy.o) does not support interworking, whereas helloworld_OSEK_rxe.elf does
Generating binary image file: helloworld_OSEK.rxe
もう一度編集し て、適切なバージョン情報をいくつか:
FW NBC/NXC 1.07
AVR 1.01
BC4 1.01
Build 3012081214
3番目を編集
また、モーターを回転させるだけのプログラムを実行しているときに、画面にゴミが表示されたり、ブロックが凍ったりします。
4番目を編集
問題は解決したと思いますが、どうすれば解決できるのかまだわかりません。NXT のファームウェアが更新されていないことがわかりました。Mac と Windows の両方で試してみましたが、「かかる」ようには見えません。たとえば、毎回ダウンロード成功メッセージが表示されますが、NXT を起動したときに nxtOSEK ロゴが表示されません。これで、画面にゴミが表示される理由が説明できますが、正しく点滅しない理由がわかりません。
最初にファームウェア更新モード (tic-tic-tic) にしてから、フラッシュ プロセスを実行していますが、何もしません。