Open tingox opened 1 year ago
If I change memory.x to have just 15 interrupt vectors, like so
[C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-test-g2231] $ type memory.x
MEMORY
{
/* msp430g2231: 128 bytes RAM, 2 kByte flash */
/* These values are correct for the msp430g2553 device. You will need to
modify these values if using a different device. Room must be reserved
for interrupt vectors plus reset vector and the end of the first 64kB
of address space. */
RAM : ORIGIN = 0x0200, LENGTH = 0x0080
ROM : ORIGIN = 0xF800, LENGTH = 0x07C0
VECTORS : ORIGIN = 0xFFE0, LENGTH = 0x1F
}
/* Stack begins at the end of RAM:
_stack_start = ORIGIN(RAM) + LENGTH(RAM); */
/* TODO: Code (and data?) above 64kB mark, which is supported even without
using MSP430X mode. */
build fails too
[C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-test-g2231] $ cargo clean
Compiling compiler_builtins v0.1.85
Compiling core v0.0.0 (C:\Users\torfinn.ingolfsen\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
Compiling proc-macro2 v1.0.50
Compiling unicode-ident v1.0.6
Compiling quote v1.0.23
Compiling syn v1.0.107
Compiling rand_core v0.6.4
Compiling msp430-rt v0.4.0
Compiling msp430g2231 v0.2.0 (https://github.com/tingox/msp430g2231#89bbcd07)
Compiling rand_xoshiro v0.6.0
Compiling rand v0.8.5
Compiling msp430-rt-macros v0.4.0
Compiling rustc-std-workspace-core v1.99.0 (C:\Users\torfinn.ingolfsen\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
Compiling critical-section v1.1.1
Compiling vcell v0.1.3
Compiling msp430 v0.4.1
Compiling panic-msp430 v0.4.0
Compiling msp430-test-g2231 v0.1.0 (C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-test-g2231)
error: linking with `msp430-elf-gcc` failed: exit code: 1
|
= note: "msp430-elf-gcc" "C:\\Users\\TORFIN~1.ING\\AppData\\Local\\Temp\\rustcrKGxwR\\symbols.o" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\msp430_test_g2231-61631bf75d8085f8.2k4jpbeaelp158da.rcgu.o" "-L" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps" "-L" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\debug\\deps" "-L" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\build\\msp430-rt-234a64ec35878595\\out" "-L" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\build\\msp430g2231-1482fcf1a53cd1f2\\out" "-L" "C:\\Users\\torfinn.ingolfsen\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\msp430-none-elf\\lib" "-Wl,-Bstatic" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\libmsp430g2231-4e5510fabfa9328a.rlib" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\libvcell-75d629977897d950.rlib" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\libmsp430_rt-557135b41f274101.rlib" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\libpanic_msp430-05e6413d1ec79a2e.rlib" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\libmsp430-4b1e066d2184c51c.rlib" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\libcritical_section-96c96ff7585a30f8.rlib" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\librustc_std_workspace_core-d189d6ef5597a167.rlib" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\libcore-0d5e79c439c97b38.rlib" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\libcompiler_builtins-4b7734987d075df6.rlib" "-Wl,-Bdynamic" "-L" "C:\\Users\\torfinn.ingolfsen\\.rustup\\toolchains\\nightly-x86_64-pc-windows-msvc\\lib\\rustlib\\msp430-none-elf\\lib" "-o" "C:\\Users\\torfinn.ingolfsen\\OneDrive - Inventas AS\\Documents\\Inventas\\0_faglig\\utvikling\\rust\\embedded\\msp430-test-g2231\\target\\msp430-none-elf\\debug\\deps\\msp430_test_g2231-61631bf75d8085f8" "-nodefaultlibs" "-Tlink.x" "-nostartfiles" "-mcpu=msp430" "-lmul_none" "-lgcc"
= note: c:/ti/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld.exe: address 0x10000 of C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-test-g2231\target\msp430-none-elf\debug\deps\msp430_test_g2231-61631bf75d8085f8 section `.vector_table' is not within region `VECTORS'
c:/ti/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld.exe: address 0x10000 of C:\Users\torfinn.ingolfsen\OneDrive - Inventas AS\Documents\Inventas\0_faglig\utvikling\rust\embedded\msp430-test-g2231\target\msp430-none-elf\debug\deps\msp430_test_g2231-61631bf75d8085f8 section `.vector_table' is not within region `VECTORS'
c:/ti/msp430-gcc/bin/../lib/gcc/msp430-elf/9.3.1/../../../../msp430-elf/bin/ld.exe:
ERROR(msp430-rt): The VECTORS memory region must end at address 0x10000. Check memory.x
collect2.exe: error: ld returned 1 exit status
error: could not compile `msp430-test-g2231` due to previous error
I fixed memory.x like so
tingo@kg-core1:~/personal/projects/2023/rust/embedded/msp430/msp430-test-g2231 $ cat memory.x
MEMORY
{
/* msp430g2231: 128 bytes RAM, 2 kByte flash */
/* vectors run from 0xFFE0 to 0xFFFF inclusive */
/* These values are correct for the msp430g2553 device. You will need to
modify these values if using a different device. Room must be reserved
for interrupt vectors plus reset vector and the end of the first 64kB
of address space. */
RAM : ORIGIN = 0x0200, LENGTH = 0x0080
ROM : ORIGIN = 0xF800, LENGTH = 0x07C0
VECTORS : ORIGIN = 0xFFE0, LENGTH = 0x20
}
/* Stack begins at the end of RAM:
_stack_start = ORIGIN(RAM) + LENGTH(RAM); */
/* TODO: Code (and data?) above 64kB mark, which is supported even without
using MSP430X mode. */
and now it builds (on FreeBSD)
tingo@kg-core1:~/personal/projects/2023/rust/embedded/msp430/msp430-test-g2231 $ cargo build
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 quote v1.0.27
Compiling unicode-ident v1.0.8
Compiling syn v1.0.109
Compiling rand_core v0.6.4
Compiling rand v0.8.5
Compiling rand_xoshiro v0.6.0
Compiling msp430-rt v0.4.0
Compiling msp430g2231 v0.2.0 (https://github.com/tingox/msp430g2231#568c39bc)
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 vcell v0.1.3
Compiling msp430 v0.4.1
Compiling panic-msp430 v0.4.0
Compiling msp430-test-g2231 v0.1.0 (/zs/tingo/personal/projects/2023/rust/embedded/msp430/msp430-test-g2231)
Finished dev [unoptimized + debuginfo] target(s) in 19.56s
build completes, but linking fails