mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-07-26 06:38:42 +00:00
avr: drop GNU toolchain dependency
- Use compiler-rt and picolibc instead of avr-libc. - Use ld.lld instead of avr-ld (or avr-gcc). This makes it much easier to get started with TinyGo on AVR because installing these extra tools (gcc-avr, avr-libc) can be a hassle. It also opens the door for future improvements such as ThinLTO. There is a code size increase but I think it's worth it in the long run. The code size increase can hopefully be reduced with improvements to the LLVM AVR backend and to compiler-rt.
This commit is contained in:
committed by
Ron Evans
parent
b9bb605257
commit
df888acd5e
@@ -60,7 +60,7 @@ type Device struct {
|
||||
|
||||
// AddressSpace is the Go version of an XML element like the following:
|
||||
//
|
||||
// <address-space endianness="little" name="data" id="data" start="0x0000" size="0x0900">
|
||||
// <address-space endianness="little" name="data" id="data" start="0x0000" size="0x0900">
|
||||
//
|
||||
// It describes one address space in an AVR microcontroller. One address space
|
||||
// may have multiple memory segments.
|
||||
@@ -71,7 +71,7 @@ type AddressSpace struct {
|
||||
|
||||
// MemorySegment is the Go version of an XML element like the following:
|
||||
//
|
||||
// <memory-segment name="IRAM" start="0x0100" size="0x0800" type="ram" external="false"/>
|
||||
// <memory-segment name="IRAM" start="0x0100" size="0x0800" type="ram" external="false"/>
|
||||
//
|
||||
// It describes a single contiguous area of memory in a particular address space
|
||||
// (see AddressSpace).
|
||||
@@ -432,7 +432,7 @@ __vector_default:
|
||||
.endm
|
||||
|
||||
; The interrupt vector of this device. Must be placed at address 0 by the linker.
|
||||
.section .vectors
|
||||
.section .vectors, "a", %progbits
|
||||
.global __vectors
|
||||
`))
|
||||
err = t.Execute(out, device.metadata)
|
||||
|
||||
Reference in New Issue
Block a user