<feed xmlns='http://www.w3.org/2005/Atom'>
<title>imxrt-rt/src, branch main</title>
<subtitle>i.MX RT Runtime Support
</subtitle>
<id>https://git.mciantyre.dev/imxrt-rt/atom?h=main</id>
<link rel='self' href='https://git.mciantyre.dev/imxrt-rt/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/'/>
<updated>2025-11-26T15:49:21+00:00</updated>
<entry>
<title>Update cortex-m-rt to 0.7.5</title>
<updated>2025-11-26T15:49:21+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-06-14T18:48:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=2fec327652c16c0352473f9a36152493630a7f57'/>
<id>urn:sha1:2fec327652c16c0352473f9a36152493630a7f57</id>
<content type='text'>
There's an unreleased commit upstream to support stack painting with
custom memory layouts, like ours. I eagerly defined the _stack_end
symbol. Tested on hardware.
</content>
</entry>
<entry>
<title>Let users change name of included device.x file</title>
<updated>2025-11-26T15:49:04+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-11-26T14:22:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=eb47674359ea27cc5e7824a234067491ff01ab13'/>
<id>urn:sha1:eb47674359ea27cc5e7824a234067491ff01ab13</id>
<content type='text'>
Alternate PAC designs might describe the device file with a custom / chip
specific name. This change lets users specify which linker script they're
using.
</content>
</entry>
<entry>
<title>Add builder API for FlexRAM bank layout</title>
<updated>2025-11-22T16:20:32+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-11-09T16:53:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=c4ee315a20e41c234d2d0f7ca3ed7e37a09b9d32'/>
<id>urn:sha1:c4ee315a20e41c234d2d0f7ca3ed7e37a09b9d32</id>
<content type='text'>
The layout, or assignment of FlexRAM banks to memory regions, is more
precise than the count. When a user specifies the count, we still apply
the same layout as we always have. But now, by default, we prefer the
fuse layout for users who have made no choice.

This commit supports RAM loading with probe-rs. After probe-rs resets
the MCU and uses the fuse FlexRAM layout, firmware can perfectly match
that layout without disrupting the data already copied into RAM by the
debugger.
</content>
</entry>
<entry>
<title>Prototype API to build runtime in RAM</title>
<updated>2025-11-11T13:24:38+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>ianpmcintyre@gmail.com</email>
</author>
<published>2023-03-13T10:50:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=6f5633761528e484e8d0963c7ac59403f7210093'/>
<id>urn:sha1:6f5633761528e484e8d0963c7ac59403f7210093</id>
<content type='text'>
Just a proof-of-concept. The new inspect_elf test seems to show that
we're building the correct image. We need another commit in order to
help the program run in FlexRAM.
</content>
</entry>
<entry>
<title>Hexify family ID in linker script</title>
<updated>2025-11-10T14:54:18+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-11-09T15:26:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=74d463340a87ff38a96c03a380bbed7c3ee56ba4'/>
<id>urn:sha1:74d463340a87ff38a96c03a380bbed7c3ee56ba4</id>
<content type='text'>
Missed in the previous hexification commit.
</content>
</entry>
<entry>
<title>Use a macro for assembly copy loops</title>
<updated>2025-09-16T11:48:07+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-06-14T15:23:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=aed7296b291c6430e24e6bd4c787cd724830d956'/>
<id>urn:sha1:aed7296b291c6430e24e6bd4c787cd724830d956</id>
<content type='text'>
Make it easier to write loops for other sections. Since the macro
expands to the same instructions that we previously had, we can show
that a binary is equivalent before and after this change. Let's use the
binaries generated in this test suite.

Before this change, run the bash script below. Re-run this script with
this change, and show that the hashes for the binaries are the same.

    cargo clean
    cargo test inspect_elf -- --include-ignored --exact imxrt1010evk imxrt1170evk_cm7 imxrt1170evk_cm7_nonboot teensy4 teensy4_fake_dcd 2&gt; /dev/null 1&gt;/dev/null

    for test_binary in imxrt1010evk imxrt1170evk-cm7 imxrt1170evk-cm7-nonboot teensy4 __dcd;
    do
        cat target/${test_binary}/thumbv7em-none-eabihf/debug/examples/blink-rtic | sha256sum -;
    done
</content>
</entry>
<entry>
<title>Hexify the family ID</title>
<updated>2025-09-16T11:48:07+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-06-14T14:46:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=b91a6a6f11e014f96c91e5a67bef805349de7b43'/>
<id>urn:sha1:b91a6a6f11e014f96c91e5a67bef805349de7b43</id>
<content type='text'>
Makes it a little easier for me to manually inspect binaries and figure
out their targets.
</content>
</entry>
<entry>
<title>Remove __pre_init inner jump labels</title>
<updated>2025-09-16T11:48:07+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-06-14T14:36:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=ed806ce952cda7400405dbc2a0b83baa7e7824fd'/>
<id>urn:sha1:ed806ce952cda7400405dbc2a0b83baa7e7824fd</id>
<content type='text'>
Local numbered labels won't appear in the ELF file. This makes debugging
a little easier.
</content>
</entry>
<entry>
<title>Catch target-host version mismatch</title>
<updated>2025-09-16T11:48:07+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-06-14T14:27:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=e244012738c0d431ff6c791325f2d3f9a3dfdeb0'/>
<id>urn:sha1:e244012738c0d431ff6c791325f2d3f9a3dfdeb0</id>
<content type='text'>
Attach the version information in a symbol that's generated by the host.
Then, expect the same symbol exists in the embedded target. If the
linker can't resolve this, then the host and target should be
incompatible. I'm overloading the __imxrt_family symbol for this.
</content>
</entry>
<entry>
<title>Adopt Rust 2024 edition</title>
<updated>2025-09-16T11:47:23+00:00</updated>
<author>
<name>Ian McIntyre</name>
<email>me@mciantyre.dev</email>
</author>
<published>2025-06-14T14:16:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.mciantyre.dev/imxrt-rt/commit/?id=9728ac5305cfe259115858f0bc49985a0ad7cec4'/>
<id>urn:sha1:9728ac5305cfe259115858f0bc49985a0ad7cec4</id>
<content type='text'>
I'm considering this a breaking change. I'll try to introduce new
sections that rely on the user's `unsafe` keyword for linker placement.

Rust 2024 has different opinions on format, and clippy has new thoughts.
Let's adopt them.
</content>
</entry>
</feed>
