Texas Instruments - MSP-EXP430F5529LP
MSP-EXP430F5529LP (LaunchPad) Evaluation Kit
MSP430F5529 mcu
- up to 25 MHz clock
- integrated USB
- 128 kB flash
- 8 kB SRAM (+ 2kB SRAM when usb is not in use)
- Spy-Bi-Wire, JTAG, BSL (via USB)
- on board ez-FET lite emulator. Only supports Spy-Bi-Wire targets.
Links
MSP-EXP430F5529LP development kit, User's Guide, datasheets MSP430F5529, MSP Flasher User's Guide,
Rust msp430-quickstart, crates.io msp430f5529, msp430-periph, github Lary15/embedded-msp430, Running Rust on Microcontrollers, msp430-i2c-oled-example,
local links
c1, core2 - c2, w-w10,
History
2023-07-05: c1 - the devd file got fixed
root@kg-core1:~ # cat /usr/local/etc/devd/mspfet.conf # Warning: Only a single instance of each FET product is supported # attach 20 { device-name "umodem[0-9]+"; match "vendor" "0x2047"; # TI MSPBSL_STANDARD_USB_VID match "product" "0x001(0|3|4)"; # Products: UIF eZ-FET MSP-FET match "interface" "0"; # JTAG-Interface action "cd /dev; p=$product; dn=$device-name; \ un=$(sysctl -n dev.umodem.${dn#umodem}.ttyname); \ chmod 666 cua${un}; ln -sf cua${un} mspfet${p#0x}"; }; notify 20 { match "system" "USB"; match "subsystem" "INTERFACE"; match "type" "DETACH"; match "vendor" "0x2047"; # TI MSPBSL_STANDARD_USB_VID match "product" "0x001(0|3|4)"; # Products: UIF eZ-FET MSP-FET match "interface" "0"; # JTAG-Interface action "p=$product; rm /dev/mspfet${p#0x}"; };
so now mspdebug works without any manual steps
tingo@kg-core1:~/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529 $ mspdebug -C mspdebug.cfg tilib MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_GetNumberOfUsbIfs MSP430_GetNameOfUsbIf Found FET: mspfet0013 MSP430_Initialize: mspfet0013 Firmware version is 31501001 MSP430_VCC: 3000 mV MSP430_OpenDevice MSP430_GetFoundDevice Device: MSP430F5529 (id = 0x002f) 8 breakpoints available MSP430_EEM_Init Chip ID data: ver_id: 2955 ver_sub_id: 0000 revision: 17 fab: 55 self: 5555 config: 12 fuses: 55 Device: MSP430F5529 Bound to port 2000. Now waiting for connection...
2023-05-18: c1 - test mspdebug here too. Fix the link
root@kg-core1:~ # sysctl -n dev.umodem.0.ttyname U0 root@kg-core1:~ # ll /dev/cuaU0 /dev/mspfet* crw-rw---- 1 uucp dialer 0x1d9 May 18 23:28 /dev/cuaU0 lrwxr-xr-x 1 root wheel 10 May 18 23:31 /dev/mspfet0013@ -> /dev/cuaU0
try mspdebug
tingo@kg-core1:~/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529 $ mspdebug -C mspdebug.cfg tilib MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_GetNumberOfUsbIfs MSP430_GetNameOfUsbIf Found FET: mspfet0013 MSP430_Initialize: mspfet0013 Firmware version is 31501001 MSP430_VCC: 3000 mV MSP430_OpenDevice MSP430_GetFoundDevice Device: MSP430F5529 (id = 0x002f) 8 breakpoints available MSP430_EEM_Init Chip ID data: ver_id: 2955 ver_sub_id: 0000 revision: 17 fab: 55 self: 5555 config: 12 fuses: 55 Device: MSP430F5529 Bound to port 2000. Now waiting for connection...
yes - it works.
2023-05-18: c2 - if I manually link from umodem0 device file to /dev/mspfet* like this
root@kg-core2:~ # sysctl -n dev.umodem.0.ttyname U0 root@kg-core2:~ # ll /dev/cuaU0 crw-rw---- 1 uucp dialer 0x202 May 18 22:47 /dev/cuaU0 root@kg-core2:~ # ll /dev/mspf* lrwxr-xr-x 1 root wheel 3 May 18 22:47 /dev/mspfet0013@ -> cua root@kg-core2:~ # rm /dev/mspfet0013 root@kg-core2:~ # ln -sf /dev/cuaU0 /dev/mspfet0013
mspdebug works
MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_GetNumberOfUsbIfs MSP430_GetNameOfUsbIf Found FET: mspfet0013 MSP430_Initialize: mspfet0013 Firmware version is 31501001 MSP430_VCC: 3000 mV MSP430_OpenDevice MSP430_GetFoundDevice Device: MSP430F5529 (id = 0x002f) 8 breakpoints available MSP430_EEM_Init Chip ID data: ver_id: 2955 ver_sub_id: 0000 revision: 17 fab: 55 self: 5555 config: 12 fuses: 55 Device: MSP430F5529 Bound to port 2000. Now waiting for connection...
it fails some of the time
tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ mspdebug -C mspdebug.cfg tilib MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_GetNumberOfUsbIfs MSP430_GetNameOfUsbIf Found FET: mspfet0013 MSP430_Initialize: mspfet0013 tilib: MSP430_Initialize: Interface Communication error (error = 35) tilib: device initialization failed
2023-05-18: c1 - I have rust and the msp430-gcc toolchain installed on this machine, let me try the msp430-test-f5529 example now
tingo@kg-core1:~/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529 $ cargo build Updating git repository `https://github.com/kvinwang/fixed-macro` Updating crates.io index Updating git repository `https://github.com/cr1901/i2c-server` Downloaded bare-metal v1.0.0 Downloaded msp430-rt v0.3.1 Downloaded msp430-rt-macros v0.3.1 Downloaded msp430 v0.3.0 Downloaded msp430f5529 v0.2.0 Downloaded 5 crates (325.2 KB) in 1.72s Compiling compiler_builtins v0.1.91 Compiling core v0.0.0 (/usr/home/tingo/.rustup/toolchains/nightly-x86_64-unknown-freebsd/lib/rustlib/src/rust/library/core) Compiling proc-macro2 v1.0.58 Compiling unicode-ident v1.0.8 Compiling quote v1.0.27 Compiling syn v1.0.109 Compiling rand_core v0.6.4 Compiling rand_xoshiro v0.6.0 Compiling rand v0.8.5 Compiling msp430-rt v0.3.1 Compiling msp430-rt v0.4.0 Compiling msp430f5529 v0.2.0 Compiling msp430-rt-macros v0.3.1 Compiling msp430-rt-macros v0.4.0 Compiling rustc-std-workspace-core v1.99.0 (/usr/home/tingo/.rustup/toolchains/nightly-x86_64-unknown-freebsd/lib/rustlib/src/rust/library/rustc-std-workspace-core) Compiling critical-section v1.1.1 Compiling bare-metal v1.0.0 Compiling msp430 v0.4.1 Compiling msp430 v0.3.0 Compiling vcell v0.1.3 Compiling panic-msp430 v0.4.0 Compiling msp430-test-f5529 v0.1.0 (/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529) error: linking with `msp430-elf-gcc` failed: exit status: 1 | = note: LC_ALL="C" PATH="/usr/home/tingo/.rustup/toolchains/nightly-x86_64-unknown-freebsd/lib/rustlib/x86_64-unknown-freebsd/bin:/usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin:/home/tingo/.cargo/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/home/tingo/bin:/home/tingo/.local/bin" VSLANG="1033" "msp430-elf-gcc" "/tmp/rustcr5R4E5/symbols.o" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/msp430_test_f5529-d2b222c2f4f6d759.4msus5vmiidahk4u.rcgu.o" "-L" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps" "-L" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/debug/deps" "-L" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/build/msp430-rt-0614665ae42b8a89/out" "-L" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/build/msp430f5529-d2205c224b3b2262/out" "-L" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/build/msp430-rt-ced76c6b9dc2837e/out" "-L" "/usr/home/tingo/.rustup/toolchains/nightly-x86_64-unknown-freebsd/lib/rustlib/msp430-none-elf/lib" "-Wl,-Bstatic" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libvcell-a45631ec15afa2b5.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430_rt-4298e8efe14aa63c.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430-6158652659711340.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libbare_metal-31e60e424c8ce620.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430_rt-5730ca6799a3b378.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libpanic_msp430-da67dfc918513b7a.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430-446a3e45e60368d9.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libcritical_section-b7c184ec8d6cfc50.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/librustc_std_workspace_core-dfd615212b40fa87.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libcore-1eaa749c7bec7ac8.rlib" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libcompiler_builtins-d8607f6666c2f4ae.rlib" "-Wl,-Bdynamic" "-L" "/usr/home/tingo/.rustup/toolchains/nightly-x86_64-unknown-freebsd/lib/rustlib/msp430-none-elf/lib" "-o" "/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/msp430_test_f5529-d2b222c2f4f6d759" "-nodefaultlibs" "-Tlink.x" "-nostartfiles" "-mcpu=msp430" "-lmul_none" "-lgcc" = note: /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x52): undefined reference to `RTC' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x54): undefined reference to `PORT2' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x56): undefined reference to `TIMER2_A1' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x58): undefined reference to `TIMER2_A0' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x5a): undefined reference to `USCI_B1' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x5c): undefined reference to `USCI_A1' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x5e): undefined reference to `PORT1' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x60): undefined reference to `TIMER1_A1' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x62): undefined reference to `TIMER1_A0' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x64): undefined reference to `DMA' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x66): undefined reference to `USB_UBM' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x68): undefined reference to `TIMER0_A1' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x6a): undefined reference to `TIMER0_A0' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x6c): undefined reference to `ADC12' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x6e): undefined reference to `USCI_B0' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x70): undefined reference to `USCI_A0' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x72): undefined reference to `WDT' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x74): undefined reference to `TIMER0_B1' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x76): undefined reference to `TIMER0_B0' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x78): undefined reference to `COMP_B' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x7a): undefined reference to `UNMI' /usr/local/gcc-msp430-ti-toolchain-9.3.1.2/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-f5529/target/msp430-none-elf/debug/deps/libmsp430f5529-a949a0db168339c5.rlib(msp430f5529-a949a0db168339c5.msp430f5529.144c75cde0eba883-cgu.0.rcgu.o):(.vector_table.interrupts+0x7c): undefined reference to `SYSNMI' collect2: error: ld returned 1 exit status = note: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified = note: use the `-l` flag to specify native libraries to link = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname) error: could not compile `msp430-test-f5529` (bin "msp430-test-f5529") due to previous error
2023-01-30: w-w10 - testing the embedded-msp430 example
[C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\embedded-msp430] $ cargo build Compiling autocfg v1.1.0 Compiling rand_core v0.4.2 Compiling semver-parser v0.7.0 Compiling proc-macro2 v0.4.30 Compiling winapi v0.3.9 Compiling unicode-xid v0.1.0 Compiling syn v0.15.44 Compiling paste v1.0.11 Compiling msp430-rt v0.2.5 Compiling msp430-periph v0.0.4 (C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\embedded-msp430\msp430-periph) error[E0554]: `#![feature]` may not be used on the stable release channel --> msp430-periph\build.rs:1:12 | 1 | #![feature(array_value_iter)] | ^^^^^^^^^^^^^^^^ warning: the feature `array_value_iter` has been stable since 1.51.0 and no longer requires an attribute to enable --> msp430-periph\build.rs:1:12 | 1 | #![feature(array_value_iter)] | ^^^^^^^^^^^^^^^^ | = note: `#[warn(stable_features)]` on by default warning: use of deprecated associated function `std::array::IntoIter::<T, N>::new`: use `IntoIterator::into_iter` instead --> msp430-periph\build.rs:18:23 | 18 | IntoIter::new([d1, d2]).chain(devices).collect::<Vec<_>>() | ^^^ | = note: `#[warn(deprecated)]` on by default For more information about this error, try `rustc --explain E0554`. warning: `msp430-periph` (build script) generated 2 warnings error: could not compile `msp430-periph` due to previous error; 2 warnings emitted warning: build failed, waiting for other jobs to finish...
remove the feature line, and try again
[C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\embedded-msp430] $ cargo build Compiling autocfg v1.1.0 Compiling rand_core v0.4.2 Compiling semver-parser v0.7.0 Compiling proc-macro2 v0.4.30 Compiling winapi v0.3.9 Compiling unicode-xid v0.1.0 Compiling syn v0.15.44 Compiling paste v1.0.11 Compiling msp430-rt v0.2.5 Compiling msp430-periph v0.0.4 (C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\embedded-msp430\msp430-periph) warning: use of deprecated associated function `std::array::IntoIter::<T, N>::new`: use `IntoIterator::into_iter` instead --> msp430-periph\build.rs:17:23 | 17 | IntoIter::new([d1, d2]).chain(devices).collect::<Vec<_>>() | ^^^ | = note: `#[warn(deprecated)]` on by default Compiling rand_core v0.3.1 Compiling autocfg v0.1.8 Compiling semver v0.9.0 Compiling rand_xorshift v0.1.1 Compiling rand_hc v0.1.0 Compiling rand_isaac v0.1.1 Compiling rustc_version v0.2.3 Compiling rand_chacha v0.1.1 Compiling rand_pcg v0.1.2 Compiling rand v0.6.5 Compiling bare-metal v0.2.5 warning: `msp430-periph` (build script) generated 1 warning error[E0463]: can't find crate for `core` | = note: the `msp430-none-elf` target may not be installed = help: consider downloading the target with `rustup target add msp430-none-elf` error[E0463]: can't find crate for `compiler_builtins` error: cannot find attribute `derive` in this scope --> C:\Users\torfinn.ingolfsen\.cargo\registry\src\github.com-1ecc6299db9ec823\bare-metal-0.2.5\src\lib.rs:10:3 | 10 | #[derive(Debug)] | ^^^^^^ error[E0405]: cannot find trait `Sync` in this scope --> C:\Users\torfinn.ingolfsen\.cargo\registry\src\github.com-1ecc6299db9ec823\bare-metal-0.2.5\src\lib.rs:101:16 | 101 | unsafe impl<T> Sync for Mutex<T> where T: Send {} | ^^^^ not found in this scope error[E0405]: cannot find trait `Send` in this scope --> C:\Users\torfinn.ingolfsen\.cargo\registry\src\github.com-1ecc6299db9ec823\bare-metal-0.2.5\src\lib.rs:101:43 | 101 | unsafe impl<T> Sync for Mutex<T> where T: Send {} | ^^^^ not found in this scope Some errors have detailed explanations: E0405, E0463. For more information about an error, try `rustc --explain E0405`. Compiling quote v0.6.13 error: could not compile `bare-metal` due to 5 previous errors warning: build failed, waiting for other jobs to finish...
nope, doesn't work.
2023-01-30: w-w10 - with this Cargo.toml file
[C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-f5529] $ more Cargo.toml [package] authors = ["Torfinn Ingolfsen <xx@xx.com>"] edition = "2018" readme = "README.md" name = "msp430-f5529" version = "0.1.0" [dependencies] msp430 = { version = "0.4.0", features = ["critical-section-single-core"] } msp430-rt = "0.4.0" panic-msp430 = "0.4.0" # Use an existing PAC to ensure examples and the crate itself compiles. If # targeting a different device, you may need to change the version of your # crate. Your PAC must be generated with svd2rust version v0.20.0 or later. [dependencies.msp430f5529] version = "0.2.0" features = ["rt", "critical-section"] [dev-dependencies] embedded-hal = "=1.0.0-alpha.8" nb = "1.0.0" fixed = "1.6.0" fixed-macro = "1.1.1" [dev-dependencies.once_cell] version = "1.7.2" default_features = false [dev-dependencies.tcn75a] version = "0.2.0-alpha.1" git = "https://github.com/cr1901/i2c-server" branch = "embedded-hal-1.0" [patch.crates-io.fixed-macro] git = "https://github.com/kvinwang/fixed-macro" version = "1.1.1" # Required for `cargo fix` to work! [[bin]] name = "msp430-f5529" test = false bench = false [profile.release] opt-level = "s" # Size is more important than performance on MSP430. codegen-units = 1 # Better size optimization. lto = "fat" # _Much_ better size optimization. # debug = true # Debug _can_ slightly increase size of .text segment.
it fails while building
[C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-f5529] $ cargo build Updating git repository `https://github.com/kvinwang/fixed-macro` Updating crates.io index Updating git repository `https://github.com/cr1901/i2c-server` error: failed to select a version for `msp430f5529`. ... required by package `msp430-f5529 v0.1.0 (C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-f5529)` versions that meet the requirements `^0.2.0` are: 0.2.0 the package `msp430-f5529` depends on `msp430f5529`, with features: `critical-section` but `msp430f5529` does not have these features. failed to select a version for `msp430f5529` which could resolve this conflict
2023-01-30: w-w10 - using cargo generate to set up an example
[C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded] $ cargo generate --git https://github.com/rust-embedded/msp430-quickstart Project Name: msp430-f5529 Destination: C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-f5529 ... project-name: msp430-f5529 ... Generating template ... Which msp430 device do you wish to target? [default: msp430g2553]: msp430f5529 Do you wish to import examples? [default: yes]: yes [ 1/23] Done: .cargo\config [ 2/23] Done: .cargo [ 3/23] Done: .gitignore [ 4/23] Done: Cargo.toml [ 5/23] Done: LICENSE-APACHE [ 6/23] Done: LICENSE-MIT [ 7/23] Done: README.md [ 8/23] Done: examples\blinky.rs [ 9/23] Done: examples\override-default-handler.rs [10/23] Done: examples\temp-hal\hal.rs [11/23] Done: examples\temp-hal\main.rs [12/23] Done: examples\temp-hal\newtypes.rs [13/23] Done: examples\temp-hal [14/23] Done: examples\timer-oncecell.rs [15/23] Done: examples\timer-unsafe.rs [16/23] Done: examples\timer.rs [17/23] Done: examples [18/23] Done: memory.x [19/23] Done: mspdebug.cfg [20/23] Done: mspdebug.gdb [21/23] Done: rust-toolchain.toml [22/23] Done: src\main.rs [23/23] Done: src Moving generated files into: `C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-f5529`... Initializing a fresh Git repository Done! New project created C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-f5529
2023-01-30: c2 - mspdebug tilib, try the correct invocation
tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ mspdebug -C mspdebug.cfg tilib MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_GetNumberOfUsbIfs MSP430_GetNameOfUsbIf Found FET: mspfet0013 MSP430_Initialize: mspfet0013 tilib: MSP430_Initialize: Interface Communication error (error = 35) tilib: device initialization failed
failed, try again
tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ mspdebug -C mspdebug.cfg tilib MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_GetNumberOfUsbIfs MSP430_GetNameOfUsbIf Found FET: mspfet0013 MSP430_Initialize: mspfet0013 Firmware version is 31501001 MSP430_VCC: 3000 mV MSP430_OpenDevice MSP430_GetFoundDevice Device: MSP430F5529 (id = 0x002f) 8 breakpoints available MSP430_EEM_Init Chip ID data: ver_id: 2955 ver_sub_id: 0000 revision: 17 fab: 55 self: 5555 config: 12 fuses: 55 Device: MSP430F5529 Bound to port 2000. Now waiting for connection...
ok, it fails some of the time.
2023-01-30: c2 - mspdebug with tilib, suddenly it works?
tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ mspdebug tilib MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_GetNumberOfUsbIfs MSP430_GetNameOfUsbIf Found FET: mspfet0013 MSP430_Initialize: mspfet0013 Firmware version is 31501001 MSP430_VCC: 3000 mV MSP430_OpenDevice MSP430_GetFoundDevice Device: MSP430F5529 (id = 0x002f) 8 breakpoints available MSP430_EEM_Init Chip ID data: ver_id: 2955 ver_sub_id: 0000 revision: 17 fab: 55 self: 5555 config: 12 fuses: 55 Device: MSP430F5529 Available commands: ! fill power setwatch_r = gdb prog setwatch_w alias help read simio blow_jtag_fuse hexout regs step break isearch reset sym cgraph load run verify delbreak load_raw save_raw verify_raw dis md set erase mw setbreak exit opt setwatch Available options: color gdb_loop enable_bsl_access gdbc_xfer_size enable_fuse_blow iradix enable_locked_flash_access lowercase_dis fet_block_size quiet gdb_default_port Type "help <topic>" for more information. Use the "opt" command ("help opt") to set options. Press Ctrl+D to quit. (mspdebug)
damn!
2023-01-30: c2 - try mspdebug with tilib and the tty device
tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ mspdebug tilib -d /dev/cuaU0 MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_Initialize: /dev/cuaU0 tilib: MSP430_Initialize: Could not find MSP-FET430UIF on specified COM port (error = 57) tilib: device initialization failed tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ sudo mspdebug tilib -d /dev/cuaU0 Password: MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_Initialize: /dev/cuaU0 tilib: MSP430_Initialize: Could not find MSP-FET430UIF on specified COM port (error = 57) tilib: device initialization failed
and cuaU1
tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ mspdebug tilib -d /dev/cuaU1 MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_Initialize: /dev/cuaU1 tilib: MSP430_Initialize: Could not find MSP-FET430UIF on specified COM port (error = 57) tilib: device initialization failed tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ sudo mspdebug tilib -d /dev/cuaU1 MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_Initialize: /dev/cuaU1 tilib: MSP430_Initialize: Could not find MSP-FET430UIF on specified COM port (error = 57) tilib: device initialization failed
2023-01-30: c2 - try an example with msp430g2553
tingo@kg-core2:/zs/tingo/personal/projects/2023/rust/embedded/msp430 $ cargo generate --git https://github.com/rust-embedded/msp430-quickstart 🤷 Project Name: msp430-g2553 🔧 Destination: /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-g2553 ... 🔧 project-name: msp430-g2553 ... 🔧 Generating template ... 🤷 Which msp430 device do you wish to target? [default: msp430g2553]: msp430g2553 🤷 Do you wish to import examples? [default: yes]: yes [ 1/23] Done: .cargo/config [ 2/23] Done: .cargo [ 3/23] Done: .gitignore [ 4/23] Done: Cargo.toml [ 5/23] Done: LICENSE-APACHE [ 6/23] Done: LICENSE-MIT [ 7/23] Done: README.md [ 8/23] Done: examples/blinky.rs [ 9/23] Done: examples/override-default-handler.rs [10/23] Done: examples/temp-hal/hal.rs [11/23] Done: examples/temp-hal/main.rs [12/23] Done: examples/temp-hal/newtypes.rs [13/23] Done: examples/temp-hal [14/23] Done: examples/timer-oncecell.rs [15/23] Done: examples/timer-unsafe.rs [16/23] Done: examples/timer.rs [17/23] Done: examples [18/23] Done: memory.x [19/23] Done: mspdebug.cfg [20/23] Done: mspdebug.gdb [21/23] Done: rust-toolchain.toml [22/23] Done: src/main.rs [23/23] Done: src 🔧 Moving generated files into: `/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-g2553`... 💡 Initializing a fresh Git repository ✨ Done! New project created /zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-g2553
and try to build it
Updating git repository `https://github.com/kvinwang/fixed-macro` Updating crates.io index Updating git repository `https://github.com/cr1901/i2c-server` Downloaded msp430g2553 v0.4.0 Downloaded 1 crate (74.5 KB) in 0.25s Compiling proc-macro2 v1.0.50 Compiling unicode-ident v1.0.6 Compiling quote v1.0.23 Compiling rand_core v0.6.4 Compiling syn v1.0.107 Compiling critical-section v1.1.1 Compiling msp430-rt v0.4.0 Compiling msp430g2553 v0.4.0 Compiling vcell v0.1.3 error[E0463]: can't find crate for `core` | = note: the `msp430-none-elf` target may not be installed = help: consider downloading the target with `rustup target add msp430-none-elf` error[E0463]: can't find crate for `compiler_builtins` error[E0405]: cannot find trait `Copy` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/vcell-0.1.3/src/lib.rs:31:18 | 31 | where T: Copy | ^^^^ not found in this scope error[E0405]: cannot find trait `Copy` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/vcell-0.1.3/src/lib.rs:39:18 | 39 | where T: Copy | ^^^^ not found in this scope Some errors have detailed explanations: E0405, E0463. For more information about an error, try `rustc --explain E0405`. error[E0463]: can't find crate for `core` --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/mutex.rs:2:5 | 2 | use core::cell::{Ref, RefCell, RefMut, UnsafeCell}; | ^^^^ can't find crate | = note: the `msp430-none-elf` target may not be installed = help: consider downloading the target with `rustup target add msp430-none-elf` error[E0463]: can't find crate for `core` --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/lib.rs:8:5 | 8 | use core::marker::PhantomData; | ^^^^ can't find crate | = note: the `msp430-none-elf` target may not be installed = help: consider downloading the target with `rustup target add msp430-none-elf` error: cannot find attribute `derive` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/lib.rs:121:3 | 121 | #[derive(Clone, Copy, Debug)] | ^^^^^^ error: cannot find attribute `derive` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/lib.rs:16:3 | 16 | #[derive(Clone, Copy, Debug)] | ^^^^^^ error: cannot find attribute `derive` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/mutex.rs:52:3 | 52 | #[derive(Debug)] | ^^^^^^ error: cannot find macro `include_str` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/lib.rs:2:10 | 2 | #![doc = include_str!("../README.md")] | ^^^^^^^^^^^ error[E0405]: cannot find trait `FnOnce` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/mutex.rs:117:12 | 117 | F: FnOnce(&mut T) -> T, | ^^^^^^ not found in this scope error[E0405]: cannot find trait `Default` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/mutex.rs:151:9 | 151 | impl<T: Default> Mutex<RefCell<T>> { | ^^^^^^^ not found in this scope error[E0405]: cannot find trait `Sync` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/mutex.rs:170:16 | 170 | unsafe impl<T> Sync for Mutex<T> where T: Send {} | ^^^^ not found in this scope error[E0405]: cannot find trait `Send` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/mutex.rs:170:43 | 170 | unsafe impl<T> Sync for Mutex<T> where T: Send {} | ^^^^ not found in this scope error[E0405]: cannot find trait `FnOnce` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/lib.rs:210:24 | 210 | pub fn with<R>(f: impl FnOnce(CriticalSection) -> R) -> R { | ^^^^^^ not found in this scope error[E0405]: cannot find trait `Drop` in this scope --> /home/tingo/.cargo/registry/src/github.com-1ecc6299db9ec823/critical-section-1.1.1/src/lib.rs:216:10 | 216 | impl Drop for Guard { | ^^^^ not found in this scope error: could not compile `vcell` due to 4 previous errors warning: build failed, waiting for other jobs to finish... error: could not compile `critical-section` due to 14 previous errors
well, it failed. and the target is there
tingo@kg-core2:/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-g2553 $ rustc --print target-list | grep msp430 msp430-none-elf
and rustc is pretty new too
tingo@kg-core2:/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-g2553 $ rustc --version rustc 1.66.0 (69f9c33d7 2022-12-12) (built from a source tarball)
2023-01-30: c2 - try mspdebug with the uif driver again, you need to specify the tty device
tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ mspdebug uif -d /dev/cuaU0 MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Trying to open /dev/cuaU0 at 460800 bps... Initializing FET... comport: read error: Operation timed out fet: open failed Trying again... Initializing FET... comport: read error: Operation timed out fet: open failed tingo@kg-core2:~/personal/projects/2023/rust/embedded/msp430/msp430-f5529 $ mspdebug uif -d /dev/cuaU1 MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Trying to open /dev/cuaU1 at 460800 bps... Initializing FET... comport: read error: Operation timed out fet: open failed Trying again... Initializing FET... comport: read error: Operation timed out fet: open failed
nope, doesn't work.
2023-01-30: c2 - mspdebug shows
tingo@kg-core2:~ $ mspdebug --usb-list Devices on bus 000:
very little. With sudo
tingo@kg-core2:~ $ sudo mspdebug --usb-list Devices on bus 000: 000:000 2047:0013 [serial: 67D9B446D20D780B] 000:000 2047:03fe [serial: 51AF0A470F001800] 000:000 0451:2046 000:000 05e3:0626 [serial: ] 000:000 05e3:0716 [serial: 000000009744] 000:000 0451:8040 000:000 05e3:0610 [serial: ] 000:000 0a81:0205 [serial: ] 000:000 0451:8042 000:000 0000:0000 [serial: ] 000:000 0000:0000 [serial: ]
interesting. Try some drivers - rf2500
tingo@kg-core2:~ $ sudo mspdebug rf2500 MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. usbutil: unable to find a device matching 0451:f432
uif
tingo@kg-core2:~ $ sudo mspdebug uif MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. usbutil: unable to find a device matching 0451:f430
uif-bsl
tingo@kg-core2:~ $ sudo mspdebug uif-bsl MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. usbutil: unable to find a device matching 0451:f430
tilib
tingo@kg-core2:~ $ sudo mspdebug tilib MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Using new (SLAC460L+) API MSP430_GetNumberOfUsbIfs No unused FET found.
load-bsl
tingo@kg-core2:~ $ sudo mspdebug load-bsl MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. usbutil: unable to find a device matching 2047:0200
ezfet
tingo@kg-core2:~ $ sudo mspdebug ezfet MSPDebug version 0.25 - debugging tool for MSP430 MCUs Copyright (C) 2009-2017 Daniel Beer <dlbeer@gmail.com> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Chip info database from MSP430.dll v3.15.0.1 Copyright (C) 2013 TI, Inc. Reset communications... Version: 2.12.0.0, HW: 0xaaabaaab Reset firmware... hal_proto_execute: HAL exception: 0xffff hal_proto_execute: fid: 0x51
ok, something happened.
2023-01-30: c2 - connected the msp-exp430f5529lp to my FreeBSD workstation. It shows up like this in /var/log/messages
Jan 30 21:01:29 kg-core2 kernel: ugen1.6: <vendor 0x0451 product 0x2046> at usbus1 Jan 30 21:01:29 kg-core2 kernel: uhub6 on uhub3 Jan 30 21:01:29 kg-core2 kernel: uhub6: <vendor 0x0451 product 0x2046, class 9/0, rev 1.10/1.25, addr 5> on usbus1 Jan 30 21:01:30 kg-core2 kernel: uhub6: 4 ports with 4 removable, bus powered Jan 30 21:01:31 kg-core2 kernel: usb_msc_auto_quirk: UQ_MSC_NO_GETMAXLUN set for USB mass storage device Texas Instruments MSC and HID Example (0x2047:0x03fe) Jan 30 21:01:31 kg-core2 kernel: usb_msc_auto_quirk: UQ_MSC_NO_SYNC_CACHE set for USB mass storage device Texas Instruments MSC and HID Example (0x2047:0x03fe) Jan 30 21:01:31 kg-core2 kernel: ugen1.7: <Texas Instruments MSC and HID Example> at usbus1 Jan 30 21:01:31 kg-core2 kernel: umass1 on uhub6 Jan 30 21:01:31 kg-core2 kernel: umass1: <MSC Interface> on usbus1 Jan 30 21:01:31 kg-core2 kernel: umass1: SCSI over Bulk-Only; quirks = 0x4100 Jan 30 21:01:31 kg-core2 kernel: umass1:6:1: Attached to scbus6 Jan 30 21:01:31 kg-core2 kernel: ukbd1 on uhub6 Jan 30 21:01:31 kg-core2 kernel: ukbd1: <HID Interface> on usbus1 Jan 30 21:01:31 kg-core2 kernel: kbd3 at ukbd1 Jan 30 21:01:31 kg-core2 kernel: da5 at umass-sim1 bus 1 scbus6 target 0 lun 0 Jan 30 21:01:31 kg-core2 kernel: da5: <TI MSC v3.0> Removable Direct Access SCSI-2 device Jan 30 21:01:31 kg-core2 kernel: da5: 1.000MB/s transfers Jan 30 21:01:31 kg-core2 kernel: da5: 0MB (163 512 byte sectors) Jan 30 21:01:31 kg-core2 kernel: da5: quirks=0x2<NO_6_BYTE> Jan 30 21:01:32 kg-core2 kernel: ugen1.8: <Texas Instruments MSP Tools Driver> at usbus1 Jan 30 21:01:32 kg-core2 kernel: umodem0 on uhub6 Jan 30 21:01:32 kg-core2 kernel: umodem0: <MSP Debug Interface> on usbus1 Jan 30 21:01:32 kg-core2 kernel: umodem0: data interface 1, has no CM over data, has no break Jan 30 21:01:32 kg-core2 kernel: umodem1 on uhub6 Jan 30 21:01:32 kg-core2 kernel: umodem1: <MSP Application UART> on usbus1 Jan 30 21:01:32 kg-core2 kernel: umodem1: data interface 3, has no CM over data, has no break
2022-07-13: compiling the OutOfBox example with CC Stuudio v11 fails with these messages
**** Build of configuration Debug for project OutOfBox_EmulStorageKeyboard **** "C:\\ti\\ccs1120\\ccs\\utils\\bin\\gmake" -k -j 16 all -O Building target: "OutOfBox_EmulStorageKeyboard.out" Invoking: MSP430 Linker "C:/ti/ccs1120/ccs/tools/compiler/ti-cgt-msp430_21.6.0.LTS/bin/cl430" -vmspx --code_model=large --data_model=large --use_hw_mpy=F5 --advice:power="none" --define=__MSP430F5529__ -g --printf_support=minimal --diag_warning=225 --diag_wrap=off --display_error_number --silicon_errata=CPU21 --silicon_errata=CPU22 --silicon_errata=CPU23 --silicon_errata=CPU40 -z -m"OutOfBox_EmulStorageKeyboard.map" --heap_size=160 --stack_size=160 --cinit_hold_wdt=on -i"C:/ti/ccs1120/ccs/ccs_base/msp430/include" -i"C:/ti/ccs1120/ccs/ccs_base/msp430/lib/5xx_6xx_FRxx" -i"C:/ti/ccs1120/ccs/tools/compiler/ti-cgt-msp430_21.6.0.LTS/lib" -i"C:/ti/ccs1120/ccs/tools/compiler/ti-cgt-msp430_21.6.0.LTS/include" --reread_libs --diag_wrap=off --display_error_number --warn_sections --xml_link_info="OutOfBox_EmulStorageKeyboard_linkInfo.xml" --use_hw_mpy=F5 --rom_model -o "OutOfBox_EmulStorageKeyboard.out" "./hal.obj" "./main.obj" "./system_pre_init.obj" "./USB_API/USB_CDC_API/UsbCdc.obj" "./USB_API/USB_Common/usb.obj" "./USB_API/USB_Common/usbdma.obj" "./USB_API/USB_HID_API/UsbHid.obj" "./USB_API/USB_HID_API/UsbHidReq.obj" "./USB_API/USB_MSC_API/UsbMscReq.obj" "./USB_API/USB_MSC_API/UsbMscScsi.obj" "./USB_API/USB_MSC_API/UsbMscStateMachine.obj" "./USB_API/USB_PHDC_API/UsbPHDC.obj" "./USB_app/FatFs/ff.obj" "./USB_app/FatFs/mmc.obj" "./USB_app/keyboard.obj" "./USB_app/mscIntf.obj" "./USB_app/storageVolume.obj" "./USB_app/usbEventHandling.obj" "./USB_config/UsbIsr.obj" "./USB_config/descriptors.obj" "./driverlib/MSP430F5xx_6xx/adc10_a.obj" "./driverlib/MSP430F5xx_6xx/adc12_a.obj" "./driverlib/MSP430F5xx_6xx/aes.obj" "./driverlib/MSP430F5xx_6xx/battbak.obj" "./driverlib/MSP430F5xx_6xx/comp_b.obj" "./driverlib/MSP430F5xx_6xx/crc.obj" "./driverlib/MSP430F5xx_6xx/dac12_a.obj" "./driverlib/MSP430F5xx_6xx/dma.obj" "./driverlib/MSP430F5xx_6xx/eusci_a_spi.obj" "./driverlib/MSP430F5xx_6xx/eusci_a_uart.obj" "./driverlib/MSP430F5xx_6xx/eusci_b_i2c.obj" "./driverlib/MSP430F5xx_6xx/eusci_b_spi.obj" "./driverlib/MSP430F5xx_6xx/flashctl.obj" "./driverlib/MSP430F5xx_6xx/gpio.obj" "./driverlib/MSP430F5xx_6xx/ldopwr.obj" "./driverlib/MSP430F5xx_6xx/mpy32.obj" "./driverlib/MSP430F5xx_6xx/pmap.obj" "./driverlib/MSP430F5xx_6xx/pmm.obj" "./driverlib/MSP430F5xx_6xx/ram.obj" "./driverlib/MSP430F5xx_6xx/ref.obj" "./driverlib/MSP430F5xx_6xx/rtc_a.obj" "./driverlib/MSP430F5xx_6xx/rtc_b.obj" "./driverlib/MSP430F5xx_6xx/rtc_c.obj" "./driverlib/MSP430F5xx_6xx/sd24_b.obj" "./driverlib/MSP430F5xx_6xx/sfr.obj" "./driverlib/MSP430F5xx_6xx/sysctl.obj" "./driverlib/MSP430F5xx_6xx/tec.obj" "./driverlib/MSP430F5xx_6xx/timer_a.obj" "./driverlib/MSP430F5xx_6xx/timer_b.obj" "./driverlib/MSP430F5xx_6xx/timer_d.obj" "./driverlib/MSP430F5xx_6xx/tlv.obj" "./driverlib/MSP430F5xx_6xx/ucs.obj" "./driverlib/MSP430F5xx_6xx/usci_a_spi.obj" "./driverlib/MSP430F5xx_6xx/usci_a_uart.obj" "./driverlib/MSP430F5xx_6xx/usci_b_i2c.obj" "./driverlib/MSP430F5xx_6xx/usci_b_spi.obj" "./driverlib/MSP430F5xx_6xx/wdt_a.obj" "../lnk_msp430f5529.cmd" "../USB_API/msp430USB.cmd" "../USB_API/msp430USB.ld" "../USB_app/OutOfBox_EmulStorageKeyboard.cmd" -llibmath.a -llibc.a <Linking> "../USB_API/msp430USB.ld", line 8: warning #10190-D: absolute symbol "tSetupPacket" being redefined "../USB_API/msp430USB.ld", line 10: warning #10190-D: absolute symbol "tEndPoint0DescriptorBlock" being redefined "../USB_API/msp430USB.ld", line 12: warning #10190-D: absolute symbol "tInputEndPointDescriptorBlock" being redefined "../USB_API/msp430USB.ld", line 14: warning #10190-D: absolute symbol "tOutputEndPointDescriptorBlock" being redefined "../USB_API/msp430USB.ld", line 16: warning #10190-D: absolute symbol "abIEP0Buffer" being redefined "../USB_API/msp430USB.ld", line 18: warning #10190-D: absolute symbol "abOEP0Buffer" being redefined "../USB_API/msp430USB.ld", line 20: warning #10190-D: absolute symbol "pbXBufferAddressEp1" being redefined "../USB_API/msp430USB.ld", line 21: warning #10190-D: absolute symbol "pbYBufferAddressEp1" being redefined "../USB_API/msp430USB.ld", line 22: warning #10190-D: absolute symbol "pbXBufferAddressEp81" being redefined "../USB_API/msp430USB.ld", line 23: warning #10190-D: absolute symbol "pbYBufferAddressEp81" being redefined "../USB_API/msp430USB.ld", line 25: warning #10190-D: absolute symbol "pbXBufferAddressEp2" being redefined "../USB_API/msp430USB.ld", line 26: warning #10190-D: absolute symbol "pbYBufferAddressEp2" being redefined "../USB_API/msp430USB.ld", line 27: warning #10190-D: absolute symbol "pbXBufferAddressEp82" being redefined "../USB_API/msp430USB.ld", line 28: warning #10190-D: absolute symbol "pbYBufferAddressEp82" being redefined "../USB_API/msp430USB.ld", line 30: warning #10190-D: absolute symbol "pbXBufferAddressEp3" being redefined "../USB_API/msp430USB.ld", line 31: warning #10190-D: absolute symbol "pbYBufferAddressEp3" being redefined "../USB_API/msp430USB.ld", line 32: warning #10190-D: absolute symbol "pbXBufferAddressEp83" being redefined "../USB_API/msp430USB.ld", line 33: warning #10190-D: absolute symbol "pbYBufferAddressEp83" being redefined "../USB_API/msp430USB.ld", line 35: warning #10190-D: absolute symbol "pbXBufferAddressEp4" being redefined "../USB_API/msp430USB.ld", line 36: warning #10190-D: absolute symbol "pbYBufferAddressEp4" being redefined "../USB_API/msp430USB.ld", line 37: warning #10190-D: absolute symbol "pbXBufferAddressEp84" being redefined "../USB_API/msp430USB.ld", line 38: warning #10190-D: absolute symbol "pbYBufferAddressEp84" being redefined "../USB_API/msp430USB.ld", line 40: warning #10190-D: absolute symbol "pbXBufferAddressEp5" being redefined "../USB_API/msp430USB.ld", line 41: warning #10190-D: absolute symbol "pbYBufferAddressEp5" being redefined "../USB_API/msp430USB.ld", line 42: warning #10190-D: absolute symbol "pbXBufferAddressEp85" being redefined "../USB_API/msp430USB.ld", line 43: warning #10190-D: absolute symbol "pbYBufferAddressEp85" being redefined "../USB_API/msp430USB.ld", line 45: warning #10190-D: absolute symbol "pbXBufferAddressEp6" being redefined "../USB_API/msp430USB.ld", line 46: warning #10190-D: absolute symbol "pbYBufferAddressEp6" being redefined "../USB_API/msp430USB.ld", line 47: warning #10190-D: absolute symbol "pbXBufferAddressEp86" being redefined "../USB_API/msp430USB.ld", line 48: warning #10190-D: absolute symbol "pbYBufferAddressEp86" being redefined "../USB_API/msp430USB.ld", line 50: warning #10190-D: absolute symbol "pbXBufferAddressEp7" being redefined "../USB_API/msp430USB.ld", line 51: warning #10190-D: absolute symbol "pbYBufferAddressEp7" being redefined "../USB_API/msp430USB.ld", line 52: warning #10190-D: absolute symbol "pbXBufferAddressEp87" being redefined "../USB_API/msp430USB.ld", line 53: warning #10190-D: absolute symbol "pbYBufferAddressEp87" being redefined "../USB_app/OutOfBox_EmulStorageKeyboard.cmd", line 5: error #10099-D: program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment fails for section "MYDRIVE" size 0x14400. Available memory ranges: FLASH2 size: 0x143f8 unused: 0x143f8 max hole: 0x143f8 error #10010: errors encountered during linking; "OutOfBox_EmulStorageKeyboard.out" not built >> Compilation failure makefile:221: recipe for target 'OutOfBox_EmulStorageKeyboard.out' failed gmake[1]: *** [OutOfBox_EmulStorageKeyboard.out] Error 1 gmake[1]: Target 'secondary-outputs' not remade because of errors. makefile:217: recipe for target 'all' failed gmake: *** [all] Error 2 **** Build Finished ****
2022-07-13: using MSP Flasher to upgrade firmware on embedded ez-FET lite
[C:\Users\torfinn.ingolfsen\workspace_v11\MSP-EXP430G2-Launchpad] $ C:\ti\MSPFlasher_1.3.20\MSP430Flasher.exe -n NO_TARGET * -----/|-------------------------------------------------------------------- * * / |__ * * /_ / MSP Flasher v1.3.20 * * | / * * -----|/-------------------------------------------------------------------- * * * Evaluating triggers...done * Checking for available FET debuggers: * Found USB FET @ COM11 <- Selected * Initializing interface @ COM11...done * Checking firmware compatibility: * The firmware of your FET is outdated. - Would you like to update it? (Y/N): y ********************************************************* * * Initializing Update Bootloader. * Programming new firmware: * |||||||||||||||||||||||||||||||||||||||||||||||||| 100% ********************************************************* * * Initializing Update Bootloader. * Programming new firmware: * |||||||||||||||||||||||||||||||||||||||||||||||||| 100% * Update was successfully finished. * ********************************************************* * Exit Update Bootlader and reboot firmware. * FET firmware is up to date. * * ---------------------------------------------------------------------------- * Driver : closed (No error) * ---------------------------------------------------------------------------- */
verify
[C:\Users\torfinn.ingolfsen\workspace_v11\MSP-EXP430G2-Launchpad] $ C:\ti\MSPFlasher_1.3.20\MSP430Flasher.exe -n NO_TARGET * -----/|-------------------------------------------------------------------- * * / |__ * * /_ / MSP Flasher v1.3.20 * * | / * * -----|/-------------------------------------------------------------------- * * * Evaluating triggers...done * Checking for available FET debuggers: * Found USB FET @ COM11 <- Selected * Initializing interface @ COM11...done * Checking firmware compatibility: * FET firmware is up to date. * * ---------------------------------------------------------------------------- * Driver : closed (No error) * ---------------------------------------------------------------------------- */
that's all.
2022-07-13: BSL - an UART BSL is available, but must be programmed into the device first.
2022-07-13: I plugged the LP (LaunchPad) into my work laptop (win10). It enumerated as 1) MSC (Mass Storage Class) hard drive, aka USB drive, 2) HID (Human Interface Device) Keyboard. It also shows up as 2 x COM ports: COM11 "MSP Debug Interface", and COM12 "MSP application UART1". The usb drives contains a few files, the HID Keyboard types example text when button S1 or S2 is pressed (it is useful to have an empty editor window open and in focus before trying this).
2022-07-13: I created this page.
2013-10-10: the package got delivered at work (Nedre Skøyen vei 24).
2013-10-05: I got a shipped confirmation for the order.
2013-09-21: I got an order update, with estimated shipping date 2013-10-24.
2013-09-17: I ordered a MSP-EXP430F5529LP (for free?) from TI eStore.