 This is above about embedded arm development in Debian, I will talk about the progress that we made since last year in Switzerland until now. We were missing a toolchain in the archive for embedded arm system and well, now we have one, a good one. What does means embedded system here? When we talk about this, we are talking about something that without an operating system, you need to manage the hardware resources, you need to deal with this. But if you want, you can put an operating system at the end. You always generate just one file that you upload into the microcontroller. With this toolchain, you never will generate a Debian package. Debian is just the building environment. Let's clear that. This toolchain supports three big groups of arm processors. The first one is the Cortex-A. For application use, it's the same that we have an ARM-HF or ARM-L for ARM-B7. The instruction set is that we have in that architecture and that ports. The other one is the Cortex-R. This is for real-time application and the instruction set is the V7-R. If you need a real-time, a robust response, you want one of that. Because it has two processors running in parallel and the output is comparable. If it doesn't match, this raises a signal that you can catch or you can reboot if it doesn't match the output. The last are the Cortex-M. They are for multi-purpose devices. They are the most cheap, so we are focused on that. You cannot read that. In the left column, it has which CPU you are using. In the middle column, the command line option that you need to pass GCC. Here, the instruction set. Next slide. What do we have on Debian now? The GCC build is from the GCC Debian source with some patches applied to support the architecture that I mentioned before. These two change supports multiple instruction sets, B6M, B7M, B7EM, etc. Also, with FPU or without FPU, it depends on the combination. It depends on the chip that you have. Also, we have two firmware uploaders. LPC-21 ISP is for NXP chips and NXP manufacturers. The LM4 tool is for Texas instruments. Also, you can use OpenOCD for many others, but that are most simple. We have some examples with the linker scripts and the make file that you can use for startup projects from scratch. We have the AC and C++ library. The C library is the new live, but I am uploading this in DevConf. It tries to reduce the footprint of the C standard library. It optimizes the insides and does not include the flocking point by default at standard bootable. If you have any suggestions or comments, please do. We need some help. I would like to have a how-to startup project from scratch and something else that you consider necessary. If you want to help, I have a beautiful to-do. I don't know if the first one is a really good idea, but we can do that. We can upload other C and C++ library and everything will be work fine. What else? I would like to have PyOCD that is based on CMC's DAP. I think every chips that supports this will be supported by that project. I would like to have the VSV for each microcontroller, like AVR, Live-C, DAS. I found that library that supports many chips, but it lacks other many. I don't know if you know any library that we can use. Ideas? Comments? This is above. I would like to listen to what you use frequently. What is the often problem that you have with this toolchain, with another toolchain that you use? What do you use right now? A Summoner toolchain maybe? Do you have any problem with that? You may want to have a look at Embed.org. It's just for streaming only. I can speak up, no problem. Embed.org is an interesting mixture of online tools with open source libraries for microcontrollers. Just have a look at the browser. The general idea, the general workflow there is that you actually type your code and build it online in a web browser. There is a sort of ID and a compiler behind it. You can export those projects and then build them with GCC if you want to. It's very different. You may want to have a look at what they are doing. There is a very vibrant community behind it. There are people doing crazy stuff. It's more or less this field of Raspberry Pi community, but more microcontroller oriented. Do you know if they have a tool for start a project from scratch? They support directly a bunch of platforms. From microelectronics you have the new closed ones. Small boards with some Cortex-M micros. Or the freedom board from FreeScale. It's kind of the low cost boards and they are directly supported in the tool. So effectively you just click. You just select the board and it will build with the correct bootstrap code. The correct initialization you just type your code in C++ and you've got a bunch of libraries. And probably the one feature that is even more interesting is the way you actually program the target. So all the board boards have additional micro on board which act as a master's device. And you just plug the board into your IDUSB. It shows up as a drive and you copy the build image to it. Reset the board, it works. Do you know the license is free software? So yeah, all the libraries have been released. I think it's MIT or Apache license. It's not TPL, but it's one of the permissive ones. And they even have, there is even a disclaimer actually work for ARM. And that's an ARM project as well. I should have started with this. I don't work with the embed guys. They leave two floors above me. I don't work for ARM. So anyway, and there is also the hardware kit, which is also open source. So it gives you information what to put into this additional chip, what kind of firmware should be there. In order to make it embed compatible. Oh, great. And I say, then this is aimed more at rapid prototyping. So you just do stuff and then when you actually go to production, you export it and build it with, if you want to, obviously, you build it with the hosted tool chain. Oh, perfect. So let's have a look. There's a lot of ideas there. I will take a look. Someone else? Any question? Yeah. Everything? Everything? We take everything. No? Yeah. OK, thanks. No, no, no. No, thanks. Have you used OpenOCD? Yeah, I tried. This is really kind of sucked. No, it costs many configurations. So you have a boilerplate. It's really big, but it works. Yeah, my experience depends a bit on which chip you use it for. It works occasionally on M3, I think. Maybe not on M7, but it works very well on A9 or something like that. Anything newer seems to be not supported very well. OK, I didn't know that. Someone else? If you've had experiences in this, I wonder if there's some, you know, diagnostic learning development boards or something or common hardware that someone would want to get started like this year. I mean, there might be some old stuff. But what might be obtainable hardware that could be used in this way? I think that one easy board is the launchers, Stellariel Lounge Patch from Texas. Because, well, we have the tool from debugging and uploading the firmware. And you have many examples to start. So I think that this is cool. It's $9 or $8, something like that. Because I would say freedom board from Fiscal is also interesting because it also costs $10. Oh, yeah. That's important, right? Yeah, it's really important. So what is a typical object code size for just the OS? You mentioned about the API. Well, we have many. Arm V7 or start from Arm V6 and V7 with different combinations with the FPU or without the FPU. Talking about where to get devices to play with, there's, I think, their Czech company called Olimax who do a very, very wide range of little boards with lots of different CPUs in. Bulgarian, are they? Nearby. But they're very cheap and the boards are well supported. You can get the schematics for them. And when we were doing the entropy key, we prototyped on Olimax boards quite happily and built all the software under Debian just using, I think we were using the code sorceries, C-Compiler and STs, libraries, that they provided open for driving. And it was actually pretty painless. Well, if you want to upload that. Well, Daniel Silverstone has on his website a whole build environment that you just plug in your favorite version of GCC and it gives you a sort of make menu config like interface for saying, I'm using this particular part and I want these features, this is the pinout that I want and it sort of creates a project for you which you can then just fill in reasonably easily. But that's specific to the ST Cortex-M's. I don't think it's Cortex-M4 or M3. Yeah, it just does the ST ones. It doesn't do any of the Texas or NXP ones. But I imagine it could be extended to... It's the same. Yeah. Yeah, yeah. Your BSP framework, right? Your two-do BSP framework. Yes, yes. The BSP. Yes, yes. The BSP is missing here. If you know about some project, yes, you can start... So if we start with his project, he doesn't extend that as a template. Or embed project, maybe. Or maybe that. Yeah. So have you given any thought to multi-core processors yet? I really don't know if there are multi-core... The R5 can be SMB or lockstep mode. Or you can also have a single R5, of course, to not have lockstep or... Oh yeah, I mentioned the two processors running in parallel. Yeah, there's lockstep mode. Yeah, lockstep. That's the right name. But you can also run it in MP, apparently. So is there a list or IRC channel where you guys hang out? Or how should we coordinate for a wiki page, anything? What? That would be great. We can use the Debian Cross mailing list, maybe. It's already there. Oh. For that? It's locked. Any more? Well, if there is no comment, so... Thanks for coming.