ChanServ changed the topic of #rust-embedded to: Welcome to the Rust Embedded IRC channel! Bridged to and logged at, code of conduct at
causal has joined #rust-embedded
<re_irc> <Rock Boynton> Is anyone aware of Rust support for embedded PowerPC targets? Specifically e200z4 core, or even more specifically a micro like the MPC5746C.
emerent has quit [Ping timeout: 244 seconds]
emerent has joined #rust-embedded
starblue has quit [Ping timeout: 246 seconds]
starblue has joined #rust-embedded
Amadiro_ has joined #rust-embedded
Amadiro__ has quit [Ping timeout: 248 seconds]
starblue has quit [Ping timeout: 246 seconds]
starblue has joined #rust-embedded
<re_irc> <yruama_lairba> Hi, is it possible to have colored text in a cargo embed session ? i can't make work terminal escaping sequence
gsalazar has quit [Ping timeout: 276 seconds]
dc740 has joined #rust-embedded
starblue has quit [Ping timeout: 276 seconds]
Socke has quit [Quit: WeeChat 3.5]
explore has quit [Quit: Connection closed for inactivity]
fabic has quit [Ping timeout: 244 seconds]
starblue has joined #rust-embedded
fabic has joined #rust-embedded
<re_irc> <richarddodd> Hi Rock Boynton I don't know myself but Rust maintains a list of supported targets (
dc740 has quit [Remote host closed the connection]
fabic has quit [Ping timeout: 246 seconds]
fabic has joined #rust-embedded
crabbedhaloablut has quit [Ping timeout: 240 seconds]
crabbedhaloablut has joined #rust-embedded
Socke has joined #rust-embedded
<re_irc> <Jan Bronicki> I have a question about the book
<re_irc> <Jan Bronicki> should i even bother doing the older tutorial with F3?
<re_irc> <Jan Bronicki> and just skip tot he micro 2 one? or is there something to learn that i wouldnt in the micro 2 one
<re_irc> <newam> if you're buying hardware just do the new tutorial, if you already have an F3 the old one should still work.
<re_irc> They're roughly the same in terms of things they teach
<re_irc> <emilgardis> burrbull: you here :) I don't understand how the ci works anymore for releases XD
<re_irc> <emilgardis> do I simply change the Unreleased release to tag it with "vx.y.z" ?
<re_irc> <Jan Bronicki> newam: I have both
<re_irc> <newam> Just do the new one then, I would say skip the F3 one.
fabic has quit [Ping timeout: 256 seconds]
<re_irc> <burrbull> emilgardis: Not sure I understood question. just add new tag and push it with "git push --tags" is enough to create release with artifacts
<re_irc> <emilgardis> alright, that's what I wanted to do, but then I looked at the tag signatures and they all seemed wierd
<re_irc> <burrbull> why 0.3.5 in cargo.toml?
<re_irc> <Rock Boynton> richarddodd: Yeah, I have seen that list, and it looks like the closest is "powerpc-unknown-linux-gnu", but I really need something like "thumbv7em-none-eabihf" (so sounds like I need to make a "powerpc-none-eabihf")
<re_irc> <emilgardis> burrbull: what do you mean?
<re_irc> <burrbull> you forgot to update version
<re_irc> <emilgardis> yes 😅
<re_irc> <richarddodd> Yeah that list is pretty exhaustive I think. I remember digging around before in the compiler and it's not too much work to make a new target, as long as LLVM supports the arch
<re_irc> <Rock Boynton> richarddodd: That's another thing, I'm not sure it is supported by LLVM. It says it has support for 32 bit ppc but not sure if that includes embedded (or if that matters)
<re_irc> ppc32 - PowerPC 32
<re_irc> ❯ llc --version | grep ppc
<re_irc> ppc32le - PowerPC 32 LE
<re_irc> <richarddodd> Are there lots of different arches for powerpc, or is it just the 4 you listed? IIUC (which isn't certain) if you have the actual arch, with the right opcodes etc, then you're good to go. You might need some "#[no_main]" and some linker magic to make the binary look right for your chip. I'm not very knowledgeable in this area.
<re_irc> <richarddodd> I know a bit more about nrf for example, where the processor just starts executing instructions at the beginning of the code segment of ram - so you just need to tell the linker where the memory to use is.
<re_irc> <richarddodd> I think - there are loads of people here who know a lot more than me :)
<re_irc> <richarddodd> Does anyone know if there are things like a thumb mode for ppc? Or is it more like PC world, where there is basically only 1 arch?
<re_irc> <Rock Boynton> richarddodd: So I believe "thumb mode" equivalent for ppc is VLE (Variable Length Encoding), but as far as I can tell, LLVM does not support that, there are only a few old GCC compilers (some being proprietary) that support ppc VLE. A question I have though is, do I _need_ to have the compiler support VLE, or does it just make the code size smaller? In the latter case, hopefully using the regular "ppc32" would be...
<re_irc> ... fine. Otherwise, I may need to try to have rust use the GCC compiler that supports it.
<re_irc> <richarddodd> Have a go and see if you can make a blinky light. And do let me know what the outcome is :)
<re_irc> <Simon Sapin> Is there a term for code that runs without an OS on an entire "machine"? Bare metal comes to mind but feels wrong when I’m the machine is virtual or emulated (in this case RISC-V in qemu on x64 Linux)
<re_irc> <dirbaio> "bare-metal" usually 😅 but yeah it conflicts with "bare-metal" in sysadmin land where it means "not a VM, but still has an OS"...
<re_irc> <dirbaio> maybe "no OS"? 😂
<re_irc> <Simon Sapin> ah well :)
<re_irc> <Simon Sapin> TIL the etymology of "embed" is "to lay in bed"
<re_irc> <dirbaio> I remember seeing "freestanding" in places, not sure if the meaning is exactly "no os"
<re_irc> <Simon Sapin> oh right, I’ve seen that one too
<re_irc> <Simon Sapin> In other news, at first it seemed like the example linker script on should work as-is with qemu’s "virt" machine since the device tree shows flash and RAM at corresponding addresses, but it doesn’t. After some initialization qemu jumps to the lowest address of _RAM_, so one has to put .text there. I don’t know what "flash" is for
<re_irc> <Simon Sapin> This blog post was critical to even find that device tree, using an undocumented CLI flag
emerent has quit [Read error: Connection reset by peer]
emerent has joined #rust-embedded
Oneiric has joined #rust-embedded
causal has quit [Quit: WeeChat 3.5]
Oneiric has quit [Quit: Oneiric]