參考資訊:
https://forums.windriver.com/t/vxworks-software-development-kit-sdk/43
https://d13321s3lxgewa.cloudfront.net/downloads/wrsdk-vxworks7-docs/2309/README_qemu.html
main.c
#include <stdio.h> #include <iosLib.h> int myProbe(void) { printf("Test\n"); return OK; }
編譯
$ source ~/wrsdk-vxworks7-qemu/sdkenv.sh $ wr-cc --version clang version 16.0.0.1 $ wr-cc main.c -o main -dkm -ggdb
啟動QEMU
$ cd $ sudo python3 -m pyftpdlib -p 21 -u target -P vxTarget -i 127.0.0.1 -d $HOME -w $ cd ~/wrsdk-vxworks7-qemu $ qemu-system-x86_64 -m 512M -kernel vxsdk/bsps/itl_generic_3_0_0_3/vxWorks \ -net nic -net user,hostfwd=tcp::1534-:1534,hostfwd=tcp::2345-:2345 \ -display none -serial stdio -monitor none \ -append "bootline:fs(0,0)host:vxWorks h=10.0.2.2 e=10.0.2.15 u=target pw=vxTarget o=gei0"
Debug DKM
-> ld < main -> b myProbe -> period 1,myProbe Break at 0xffffffff8c5a60a0: myProbe Task: 0xffff8000001f9810 (t1) -> l myProbe: 0xffffffff8c5a60a0 55 PUSH %RBP 0xffffffff8c5a60a1 48 89 e5 MOV %RBP, %RSP 0xffffffff8c5a60a4 48 c7 c7 b6 60 5a 8c MOV %RDI, $0x8c5a60b6 0xffffffff8c5a60ab 31 c0 XOR %EAX, %EAX 0xffffffff8c5a60ad e8 de 3f 00 f4 CALL printf 0xffffffff8c5a60b2 31 c0 XOR %EAX, %EAX 0xffffffff8c5a60b4 5d POP %RBP 0xffffffff8c5a60b5 c3 RET 0xffffffff8c5a60b6 54 PUSH %RSP 0xffffffff8c5a60b7 65 73 74 JNB 0xffffffff8c5a612f value = 0 = 0x0 -> so rax = 0x0000000000000000 r8 = 0x0000000000000000 rbx = 0x0000000000000000 r9 = 0x0000000000000000 rcx = 0x0000000000000000 r10 = 0xffffffff8c5a60a0 rdx = 0x0000000000000000 r11 = 0x0000000000000000 rsi = 0x0000000000000000 r12 = 0x0000000000000000 rdi = 0x0000000000000000 r13 = 0x0000000000000000 rsp = 0xffff80000c2c2f10 r14 = 0x0000000000000000 rbp = 0xffff80000c2c2f70 r15 = 0x0000000000000000 pc = 0xffffffff8c5a60a1 eflags = 0x0000000000000282 tlsbase = 0xffff80000c305fb0 0xffffffff8c5a60a1 48 89 e5 MOV %RBP, %RSP -> c Test