Embedded - 218: Neutron Star of Dev Boards

Episode Date: October 6, 2017

Dirk Akeman of SEGGER (@SEGGERMicro) joined us to talk about debugger specifics. Ozone standalone debugger for use with J-Links SystemView visualization tool for RTOS and system debugging Jlink Prod...ucts Turning an ST-Link on a development board into a J-Link We recently did two other shows on debugging: a general intro with Alvaro Prieto and one with a focus on the development-system’s debugger software interface with Pierre-Marie de Rodat. Herd immunity and find a flu shot And, yes, we did bleep Dirk's answer for favorite processor because he later reconsidered the idea that he only had one favorite.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Embedded. I'm Elysia White, here with Christopher White. Our guest this week is Dirk Ackerman of SEGGER. Hi, Dirk. Welcome to the show. Hello, everyone. Glad to be here. Could you tell us about yourself as though we had met at a lunch table at a technical conference? I've been technically from the beginning, basically, starting as Commodore 64 in the 80s and started programming as a U.S. guy and continued that during my studies. Though I still tried to get more into an engineering background, so into electrical engineering
Starting point is 00:00:55 and ended up with some mixture of economics and engineering during studies. So I had some industrial engineering degree in the end, continued as a research fellow. And there was a very interesting part which I did was basically a hardware loop thing which was based on the PowerPC back then that made me dive into the hardware, dive deeper into the software and stuff like that and controlling things actually and making things move. So that was basically my first embedded experience I had. And when I left university, I went away from software actually because at some point there was always a feeling it's not finished yet.
Starting point is 00:01:47 And I wanted to do something different, try to find out, get that feeling away. So I went to a distribution company who looked for an application engineer, stayed there for a while. And then I met Rolf Sager and got the offer to work for him as partnership marketing manager and I had basically everything around what I had in experience. I could put in my economics background, my technical background, was back in software because Zegger is a software company. So now I'm here. That was 2009 actually when I joined Zegger.
Starting point is 00:02:28 So it's a while back. And I'm quite happy to be here. We've been growing since then. I'm actually growing for 25 years now. But the last years have been really incredible and the department I work in no longer is just me, it's a couple of people. So my workload has shifted to other people and I've gotten new tasks and stuff like that. So that's basically my career in a nutshell. All right. in a nutshell. Alright. Well, we're going to ask you more about some things at
Starting point is 00:03:06 SEGGER, in particular the JLinks and JTraces and JWhatevers. Yeah, what's to be expected. Everybody knows us for them. But also some of the other SEGGER things. Before that, we'd like to do
Starting point is 00:03:22 lightning round, and I know you listen to the show, so you're familiar with the goal of short questions with short answers. And we'll see if that works out for you or us. Chris, do you want to start? Sure. Favorite book or movie which you encountered for the first time in the last year? All kids' movies are kids' books. I have a four-year-old.
Starting point is 00:03:44 That's a fine answer. Not really a favorite. I don't know. Having a four-year-old, do you have a least favorite? Something you've had to see 97,000 times? Or read? The funny thing is, if she enjoys it, I enjoy it too. Do you have a favorite technical conference to attend?
Starting point is 00:04:15 Definitely the Embedded World at Nuremberg. That's a big one. It sure sounds interesting. That is an interesting show, and everybody should go there, really. I think I wrote you an email in the past where I said, go there. And I really mean it. It's just incredible. You meet everybody.
Starting point is 00:04:37 And it's big, but it's still, compared to other shows, it's still small because the embedded industry is not a huge industry. It's the most exciting industry in my point of view, but that show really shows it. All right. SWD or JTAG? I don't care. Favorite processor? I shouldn't say that but which one was it okay
Starting point is 00:05:08 least favorite processor I'll shut my mouth to that one that's very politic favorite language English but I guess in my programming language, so let's see. We're ambiguous. It was pretty ambiguous.
Starting point is 00:05:28 You mentioned Commodore 64. What's your favorite computer, or do you have the best memories of that one or something else? Actually, my most favorite computer was one that I never had, but did a lot of stuff on. That was the Amiga. Ah, yes. I had the C64, and I liked it for the simplicity of assembly programming.
Starting point is 00:05:53 And there was this, I want to have this thing, Amiga. It was a pretty, pretty impressive computer back then. Yeah, definitely. Okay, one more question. And on that same vein, in the 80s when you were getting into this, which did you most want more of, RAM, disk space, or processing power?
Starting point is 00:06:19 Most times was processing power, actually. Now we have that. We have all of them. We definitely have that, yeah. You said that the, so moving away from lightning round, you said that the embedded industry was exciting. I, of course, feel that way myself.
Starting point is 00:06:39 But why do you say that? What makes it exciting to you? As I said, when I have been a research fellow at university, this project which I had where I had to combine everything I knew about software, about hardware, and really find out what things make other things move, that was just incredibly satisfying in a way because you could really do something not virtual with software. That's what I really like. And Embedded basically makes things which appear to be huge. If I think about something which we carry around today, that would be basically a couple of years ago from the size of the hardware.
Starting point is 00:07:32 So if we talk about smartphones, for example, you would not be able to carry it in the 80s if you have the same processing power. And the distribution of tasks, small little computing units and get them working here and working there and let them do things together. There's so many things around where you can think about embedded. It's just incredible. Yeah.
Starting point is 00:08:07 The interdisciplinary makes it fun, and the applications, there are so many of them. And like you said, making things virtual into doing something physical. Yeah. That was a big attraction for me, too. And the pace, how fast it changes, you'd think we wouldn't want that because it makes our lives more difficult,
Starting point is 00:08:30 but it's part of the fun part. So, all right, let's talk a little bit about debugging. And I know we've done some shows recently about debugging. We had Pierre-Marie Derodat and Alvaro Prieto talk
Starting point is 00:08:47 about both the software debugging and the whole process. But still, for the people who didn't catch those shows, could you give us a short what is a J-Link, I guess, is the short question.
Starting point is 00:09:03 What is a SEGGER J-Link? Well, the J-Link, I guess, is the short question. What is a SEGGER J-Link? Well, the J-Link is basically the link between the developing system and the target which you want to develop on. As we cannot debug on the system and develop on the system itself, as we could on a PC, we need some link between the PC and that device. And that physical link is a J-Link. And as a J-Link is just not software and just not only hardware, it's a huge software bundle in the end. It's also the software debugger in that. We work with, basically the Jlin can work with its own debugger, the Ozone,
Starting point is 00:09:50 but it is supported by basically every debugger you have in the industry. And if it's just via the GDB server. Yes. So it is hardware and software, and then software on your computer as well. Yeah. software on your computer as well yeah and when i plug it into my uh stm32 f7 cortex processor what what is it talking to in the box what is it talking to in the jlink is there a fpga or is there another processor in there ghosts ghosts it. Ghosts. It's October. Depends on the model. So usually it's a microcontroller of some sort.
Starting point is 00:10:30 If it's a microcontroller inside an FPGA or if it's a microcontroller which communicates via an FPGA or a microcontroller which communicates directly with GPIO, we have different sorts of solutions there. So basically the JAG is an intelligent system
Starting point is 00:10:48 with a microcontroller. And the target interface depends on how we implemented it. For example, if you look into the current JTrace Pro, that has a Zinc in there. A Zinc? What is a Zinc? The Xilinx Cortex A9 FPGA.
Starting point is 00:11:10 And if you look at the Trading Ultra Plus Trading Pro, we have, I think it was a
Starting point is 00:11:18 CM32F4 and FPGA. And on the Trading Base Trading Plus, we have an LPC
Starting point is 00:11:25 43 inside right now. The J-Links do mostly the same thing, don't they? Or are they, do they,
Starting point is 00:11:35 is it that they act faster or slower or what's the difference? Basically, yeah, basically they're doing the same thing
Starting point is 00:11:45 but the plus has some additional software packages enabled so for example if you want to use breakpoints and flash memory beyond the hardware breakpoints if you want to have a programming tool with projects something then you would go for Jading plus and if you want to have a faster unit you can go for Jading Plus. And if you want to have a faster unit, you can go with the Jading Ultra Plus. And if you want to have an Ethernet connection, then you go with the Jading Pro.
Starting point is 00:12:13 And if you want to have trace, so ETM trace in addition, then you go with the JChase Pro. Okay, so what does the FPGA do for you? I mean, we write microcontroller software. That I can kind of understand. There's a protocol and I have to talk to something. But why do they all have FPGAs in them?
Starting point is 00:12:35 On the faster ones, we just use it to quickly modify the signals for the JTAG interface. That's basically improving the response times on the signal side. That's a little bit more to it, but basically we just try to get the most clean signal there. You take USB, I mean, I know there's an Ethernet one, but for the USB ones,
Starting point is 00:13:01 you take USB on one side and then JTAG or SWD on the other side. Is it just a translator between USB and the debug protocol? It wouldn't be so
Starting point is 00:13:17 popular if it was. There's a lot of intelligence inside the JLink which handles the debug unit on the other end. So we can use a much simpler protocol on the USB side. For example, there's an implementation for OpenOCD which talks to the J-Link. If you use OpenOCD, you basically have the dumbest debug probe out there. Then J-Link is nothing else
Starting point is 00:13:46 than a dumb debug probe. So it's just a command translator. And then you lose all the advantages you have with the J-Link because the J-Link inside has a lot of things where you can communicate more directly with the target interface. And with this opportunity, you can be a lot faster, more responsive. You have a lot more options, like direct memory access and stuff like that. So for people who are on the GNU side, it takes a GDB server in that case
Starting point is 00:14:23 because you can also use a GDB and you can use a full. You can utilize your trailing fully. Because the GDB server part is written by Seger and so you can translate better. Yeah, and it's freely available. So if you have any trailing, you can use a GDB server. What do we need to know about choosing our debugger software? I mean, okay. OpenOCD was never on my personal list of favorites.
Starting point is 00:14:54 GDB is okay. I guess Eclipse is usually GDB underneath and Kyle and I are different. Do you have to write individual software for those? And what do you suggest I use? Actually, I would suggest to use two debuggers. One of them is the Ozone debugger, which talks directly to the chaining and always will have the latest features in there.
Starting point is 00:15:24 But that one works with the L file. So you will load the ELF file into the Ozone and then you can work with it as if you would use it inside your regular IDE. If you use it with Embedded Studio, then you can call directly from Embedded Studio instead of using the internal debugger from Embedded Studio. But you can do the same as the IRC spy or KAS debugger. From our point of view, the debuggers from Embedded Studio and the Ozone debugger are better in a couple of ways. A little bit easier to use, a little bit more powerful than some things, but basically all of them work. And we have a long history of supporting all of these.
Starting point is 00:16:10 Yeah, we've talked before about how it becomes a combinatorial problem where you have to support all of the hardware pieces and all of the IDEs and it just... And all of the revisions thereof. And all, I mean, Seger has a whole line of products. So I have to say, how do you even go about
Starting point is 00:16:32 testing all of these combinations? The interesting part about testing is you can do everything. It will take ages. Or you can be smart about testing by trying to find combinations um or if you have a group of processors you usually don't need to test every single one of them so i don't need to test the sdmF746GGAB and the AE. Doesn't make sense.
Starting point is 00:17:14 So you can basically shorten that test, for example. On the IDE side, you basically have to test them all. Again, you can basically, on the GDB side, it's the GDB you have to test. You don't have to test all the GDB based ones. And so you can strip down a little bit on the testing and streamline it and reduce the amount of testing. Now, there are other things where you can do similar things. So it's an enormous amount of testing we do. And we have,
Starting point is 00:17:49 sometimes we have to take shortcuts. So on the better versions we really should take the shortcuts.
Starting point is 00:17:53 On the reduced versions we do not afford the shortcuts because that would basically kill us.
Starting point is 00:18:00 Yeah, if you can't trust your debugger, you really can't trust anything. Well, I was going to ask how you test your own development of JLinks. Do you plug a JLink into a JLink?
Starting point is 00:18:11 I know I've asked this question of other debugger people because I find it hilarious, but do you test your own devices with your devices? Of course. Or do you have special devices? Okay. We also have special tests? Okay. We also, we have special tests in addition. Sure. But we definitely,
Starting point is 00:18:31 yeah, I think in California it's called dog feeding, right? Yes. You use our own products and so when you look into the Jading, then you have our RTOS in there,
Starting point is 00:18:43 you have our USB stack in there, you have our USB stack in there, our IP stack as it's in the IP interface, a file system if you have memory in there. If you have a display like on the Fedlash or Portable Plus, we use our own MN and so on. So we do use our own stuff and that's actually part of our success in many things because that definitely improves the reliability and the usability of the thing. If you have to use your tools the whole day and you are not allowed to use other tools, you make sure that they are good.
Starting point is 00:19:20 Do you have a giant room full of test platforms that you work with? The hardware? We have not automated it. But we have approximately 2,000 evil boards in our office. Oh my god. And it's growing, so we are approaching 3,000 fast. At some point, SEGGER, the building, is going to collapse in on itself
Starting point is 00:19:44 and become a neutron star of dev boards. They're definitely moving next year. How large is your QA team? I mean, they must spend a lot of time testing. We have the training team, which is approximately 10 people. And we have basically every engineer in the company. We have the training team, which is approximately 10 people. And we have basically every engineer in the company. So we have 40 engineers working for Sager.
Starting point is 00:20:19 And 30 of them are in development and they are forced to use our tools all the time. So that's basically one part of the QA team. And the other part is the 10 people in the training department all of them do QA so when we do a release basically they are 100% QA. How often do you end up releasing things? Very often I don't currently I don't recall our cycle. It's like every two weeks or so. That's amazing. That's really amazing. We're not releasing as fast on the other products, but still we have a good rate of releases there too.
Starting point is 00:21:01 Basically, on every product, we try to have one at least once a quarter or once a month, depending on the product. How are the debuggers and programmers changing? Are they getting more features? Are they getting cheaper? What is the most exciting change you're seeing? Cheap is not the most exciting part, but it's actually what seems to happen in a way.
Starting point is 00:21:31 The simple debuggers actually get cheaper. So every hardware vendor or silicon vendor has their own sort of debug probe, like LPC-Link, ST-Link link and all of them do their job but they're what they are. You can improve yourself by just using something really good and if you use an ST link to download things and you use a J-Link to download things, you would face an incredible amount of time reduction with the downloading.
Starting point is 00:22:12 So no longer you can go and have coffee during that time or whatever. But what really is exciting about is the possibilities you have today with debugging. There's so many new features being introduced in the last years. On the high end, we see a streaming trace on the ETM side where you can do things like code profiling or code coverage in your target system and no longer need to do it in simulation. But you can run verification tests for weeks, for months, basically recording every single instruction you have executed in your system,
Starting point is 00:22:55 just limited by the hard drive capacity on your PC. That's really amazing on the high end. That is exciting. I can't wait until I actually have that for myself. Well, that leads me to a question. I've worked at a lot of companies doing embedded development on small arms and stuff, and thus far it's been pretty rare to have access to these tools.
Starting point is 00:23:22 What do you think the resistance is, or do you see resistance to using these tools? Because most of us seem to be, okay, we'll get a J-Link and we'll do unit tests on our desktop, but we won't do that sort of thing on device. We won't do coverage tests. We won't use trace.
Starting point is 00:23:38 Is it simply a matter of cost? Training? Or training? Training. Okay. Or knowledge. I think many possibilities that are there in debugging are not known to people. With the streaming trade things,
Starting point is 00:23:57 basically until we introduced the TradeJS Pro and the trading itself was difficult to set up. And now we have a device which can be set up in less than 10 minutes by our commercial apprentices. We tested it. So they have no technical background.
Starting point is 00:24:16 They did it in 10 minutes. What debugger did they use? Or what software works with the trace? That's Ozone. Okay. Right now it's for the streaming trace and the code coverage options trace? That's Ozone. Okay. Right now it's for the streaming trace and the code coverage options, it's just Ozone.
Starting point is 00:24:31 Embedded Studio will have it soon or has just sent it out in the release. I'm not 100% sure. So that's coming as well. And we'll definitely have other companies pick that up as well. So we're talking with Kyle so you're talking with carl we're talking with ir um at some point they will have will something be happening i'm not sure
Starting point is 00:24:52 about ir but i'm pretty sure carl will do it at some point cool so that's basically the higher end and if you talk about the um middle, so the training pluses and so on, then you have things like RTT or high speed sampling and stuff like that. So RTT is a real time transfer, which basically gives you a buffer on your target system and the trainings reach that buffer and you can do it with that buffer or whatever you want and you can do it in real time. So the most prominent solution there is printf debugging in real-time capable systems. That's the most straightforward way to do it. If you use SWO, you have such a high overhead, it doesn't really work.
Starting point is 00:25:44 Printf usually needs a breakpoint to print to the terminal. or you have such a high overhead, it doesn't really work. Printf usually needs a breakpoint to print to the terminal. But if you can have direct access to the memory, which you have as a court exams, then you can basically do Printf stuff inside real-time applications. And I really like that because I've been in closed loop control engineering in the past, and that was the one part I was missing there. It's so basic debugging, but it's incredible that it didn't work that time and now we can just do it. But there are a lot of more other things you can do with that sort of thing. So the event tracing tools you have seen recently, one of them being your own free system view,
Starting point is 00:26:34 which is free to use for people. They can instrument your code and trace every event you have for an address, you would trace tasks, which is you might trace the number of nodes or monitor the messages you have inside the system and stuff like that. So a lot of things going on, but you have to know about it and you have to um try it out yourself to really um to really make use of it because it's um things that are rarely taught right now it's hard usually when i'm working with my debugger i am trying to solve a problem in pursuit of getting a product out or getting my code finished or giving it to someone so they can use it. And so I just want my debugger to do what I want. And it's hard to allocate time to say, oh, what's new in the debugger world so that next time
Starting point is 00:27:42 I can use it? Because I don't necessarily want to learn all of these things when I'm deep in debugging. How do you convince people to take the time to learn? Have you ever tried to chase an errant interrupt? Yes. Okay, that's where you
Starting point is 00:27:59 want to have system view because then it's basically a breeze to find out. If you have an interrupt that's firing errantly, it's difficult to find out why it fires and how it fires. Once you instrument your code and have a graphical view of how your interrupts are actually firing and in which order, you can easily find out in which order they are firing and which one actually causes this interrupt. We actually solved our own.
Starting point is 00:28:34 We had one driver, I'm not sure which processor it was, but we had one driver on the USB side where we had a problem with the performance. And at some point we found out that it was triggering an interrupt, which we didn't want to have there. And we quickly found out because we used our own tool, in this case, was the system view. And we had customers who had done some configuration wrong and things didn't work right and we could show them that their hardware was actually the problem
Starting point is 00:29:07 because the hardware was firing interrupt which was definitely not caused by the software. So things like that can really save time. Is this with your high-end trace tool though?
Starting point is 00:29:20 Or is this with the RTT on your mid-level? That's actually SystemVue is basically available for chaining base. And actually SystemVue even works without
Starting point is 00:29:33 debug probe if you really want, but then you don't have the real-time option there. Then you have to write your buffer, read out the buffer, and then feed the buffer into SystemVue. That's still... Okay, that sounds interesting. And yet, I probably would have spent hours fiddling myself before
Starting point is 00:29:55 taking the hit of knowing I need to install some software and learn how to use it and learn how to configure it. Because that's not free i mean to some extent if i kind of know which interrupt is wrong and and as someone who really wants to encourage people to use the right tools how do you convince them i mean stories like that are convincing but do you find there is some way to push people to not assume that the tools aren't better than they have? Well, the only way is basically make them use the tools.
Starting point is 00:30:37 So what we do is on shows, we take people to our computers and demonstrate tools. We're currently doing some videos trying to show how easy it is and how easy it is to set up and stuff like that. So we really try to make people see what's going on there and how easy it is. That's basically one of our reasons is talking about those things and make them transfer the message. We're trying to get away from that weakness because it's been hurting us in the past. And definitely when we see the tools we have available and the tools available out there, not only from Laguerre, there's so much going on.
Starting point is 00:31:31 And at some point I had a discussion with someone and he said, well, in the end, it's not a debugger, it's a verification tool. And there's some truth in there because we don't want to wait for the bug to happen, actually. We want to squash the bug before it happens. We want to have this bug found before we deliver the software. And there are so many tools out there, the system view just being one of them, that help us achieve that.
Starting point is 00:32:06 It is hard because I need to, as somebody who charges per hour, I need to let my customers know that I'm going to be taking time away from obvious forward progress in order to make the code
Starting point is 00:32:22 more robust to verify it. I would assume specifically as a consultant, you use some set of make the code more robust to verify it. I would assume, specifically as a consultant, you use some set of standard software. So you would not create your own RTOS. You would either have created it already or you use some of the commercial options out there. You probably would use an IP stick, for example. And if you want to use a tool like SystemView,
Starting point is 00:32:49 basically you can have an instrumented version of mMOS. You can have an instrumented version of FreeRTOS. There's an instrumented version of Micrium. And it's not really hard to instrument the standard software. And many have instrumented the standard software just switching on the instrumentation and saying, okay, I'm debugging it now. It's not really a big effort. It's just standardizing on that part at some point.
Starting point is 00:33:22 So taking the time at some point and basically switch it on if you need it. That makes sense. Going back to a much earlier answer where you said one of the interesting things that's happening in the debugger world is all of these boards that have
Starting point is 00:33:41 onboard debuggers. How does that affect Seger? I mean,-board debuggers. How does that affect SEGGER? I mean, you sell debuggers and they're essentially giving them away. Yeah, basically we are also partly at fault for all these on-board debuggers. There has been a genic OB basically in 2010, I think already. And the reasoning behind it is basically people start with an eval board and the eval board manufacturers at some point realized they want to put a complete solution on the desk of the people and they don't want to have a big package of it. So if you want to have a nuclear board, a discovery board, or freedom board, or you name to have a nuclear board or discovery board or freedom board or
Starting point is 00:34:26 you name it expresso or whatever um they are small and if the debugger is basically double the size the package is going to be triple the size all of a sudden so they want to have it on board and that um yeah basically we had to follow that one. But there's also the market of people who create real systems and they don't have a debugger on board. They need one. They need a debugger. So for development projects, it's not hurting us at all. And for hobbyist projects, it's good if they use it and if they get cheap access to it, because then they get used to it. And if they do a real job, then at some point they are going to purchase professional tool.
Starting point is 00:35:22 And if we are on there and basically there are just a few eval boards where we're not on um then the chance is very high that they are going to take our product because they are used to it they enjoy the speed they enjoy um all the tools they can use um they have some experience with the tools already so they know that they are going to save time over some other solutions and so on. So for us, it's two-folded, but in the end, that's a good thing. Training people to use these debuggers that go beyond just copy over your code and flash the processor that way, but actually being able to step through, I can see how that helps you. But then there's this ST link that I can turn into a J link.
Starting point is 00:36:13 That didn't make any sense to me. And I thought it was a hack that was maybe not really ethical or maybe not right. But then I saw on your website that you're supporting this hack. For sure. It's an ST-approved hack by Zyga Engineers. So basically the old discovery boards always had the JTAG pins somewhere. And the more recent ones no longer do have it.
Starting point is 00:36:49 And at that point we needed some way to basically get trailing on there because we have customers who want to use the jailing they don't want to use the stv we said okay those customers are using our jailing already. That's probably one of the reasons ST approved that, because they don't want to lose those customers. And for other customers, with the ST-Link turned into J-Link, we opened up a whole ecosystem by Zagger. So from our point of view, it makes completely sense. So Embedded Studio, for example, right now works with training only. It wouldn't work as a nest healing right now. So to use Embedded Studio, which is free to use, unlimited for commercial, evil use, and so on,
Starting point is 00:37:41 we need the training. And that was our motivation to do it. It was very strange to me to realize that, I mean, the J-Links, they're not cheap. I mean, I've had my eyes on a bigger one. I always want one that's two up from whatever I have. And I've been working with the J-Link base for a while and looking at the pro and trying to decide
Starting point is 00:38:07 whether or not this is the year we spend that money and the trace is up there. You can simply move your ladder up. You can use our trading program and say, okay, I have this one and step up to the next one, step up to the next one, step up to the next one. Oh, I have a JTrace Pro. Great.
Starting point is 00:38:27 What is this program? Trade-in. Trade-in? Yeah, we have a trade-in program where you can send your old debugger and get a new one for a reduced price. I got a box full of them. Can I send in that?
Starting point is 00:38:44 How many do I need before I get a new car? You cannot send two debuggers to get a new one. Okay. Well, how about the TI Code Composer debugger and the Jlink Lite? Can those combine into an actual debugger? Not really. So some qualifications to this. Yeah.
Starting point is 00:39:09 You need a black box or maybe one of the old yellow boxes. Everybody now is going out to their garage. I'm sure there's one in here somewhere. Do you see that trace will become as commonplace as standard JTAG debugging, stepping through and stuff like that? Do you see it moving down market? Or will it always be kind of a extra special, more advanced kind of technique?
Starting point is 00:39:43 Depends on how much money people want to spend on their tools. Okay. Trace is more effort to get out of the CPU, even though the ETM is already a good start. But it has to set up the ETM, which is different from Silicon Vendor to Silicon Vendor. The data you get out, you have to actually link that to the code
Starting point is 00:40:12 because it's not getting you the code lines. It's a smart way of compressing data for where your program counter actually is right now. But there's some effort behind and that's making the hardware expensive and the effort on the software side a little bit bigger. So not so many
Starting point is 00:40:33 companies are actually offering a decent trace tool right now and usually the trace tools are quite expensive. Okay. And yet, it's hard for me to think back to the late 90s or early 2000s. And the idea that you could buy a $20 board with a debugger built in would have been... I mean, the reason I have those debuggers still is because they were so expensive.
Starting point is 00:41:05 There was no way I was getting rid of them, even though now they're built on to boards. So I wonder if this conversation in 15 years, if we'll just all have trace and know how to use it and it will be just a normal, oh, I know where my interrupt was because I just walked back to where it happened. That should be the way it is, right? Ah, technology moves so fast and yet not fast enough. And I think in 15 years, we were definitely talking about different things. I was working on the hardware loop thing and basically around 2000, I really would have liked a decent debugger. A simple debugger would have been great.
Starting point is 00:41:55 And there was not. So at least not one affordable for me because the Institute wouldn't purchase one thing for 10k or I think it was even more back then. And I remember when development boards were $10,000. And you would, well, I would always end up borrowing them from the application engineer for two weeks while I prototyped enough to see if this processor did what I needed it to do.
Starting point is 00:42:24 And now if a chip isn't on a DigiKey board, at least its family should be. It's kind of cool. Yeah. Do you see any other shifts like this coming up? I mean, it has changed a lot in the last 10 or 15 years. Once we have traces on all the boards, what else do you think we'll get? I think the tools like the event tracing tools, they've just started, so that's actually already a big shift.
Starting point is 00:43:01 And they will definitely evolve into something everybody is going to use because they are really a big helper. And that's going on a lot right now. I think a lot of things will more move into the verification side of things. So right now, most people talk about debugging and they try to shift it in the other direction and more into advanced debugging. So anticipated debugging is like finding a box
Starting point is 00:43:35 before a customer does and stuff like that. Well, that goes back to the verification. And even with the trace tools, you can do a different form of test-driven development. I mean, if you're tracing through and you have a Python script
Starting point is 00:43:51 and you know where it's supposed to go, you can check. I mean, find out where it's supposed to go. Find out who's using all the battery. Find out who's... Or you can write unit tests that run on the device, sort of kind of, or automated verification tests
Starting point is 00:44:07 that you have a lot of visibility into what's going on. Well, he was talking about that memory link, the RTT. That would be a great way to do on-board, not invasive, compiled-out unit tests. Yeah, I'm going to look into that. That seems like something could be very useful. What about security and debugging?
Starting point is 00:44:31 A lot of things about security. The debugging side, actually, because there are customers who actually switch off JTAG because they see if JTAG is open, my system is open, which can be the case, but doesn't have to be the case.
Starting point is 00:44:49 Depends a little bit on the silicon use and on the protection circuits used there. So there's something going on that's going to be in the market in the coming years. As a device security, there are so many things and what's quite interesting about it is the embedded industry doesn't really pick up the security things as fast as I would expect it actually. The units are all exposed to the internet because the internet has things and personal devices are exposed to the internet. And as there's not enough security in there basically it's hackable, it can be abused, it can be read out, it can be copied, whatever. And for some reason, the industry is not really
Starting point is 00:45:47 following that strat. I think it will become a lot more important as we go forward. It's already a lot more important, I think, as we're just realizing that it's a problem. Yeah, and how big of a problem it's going to be. Two years ago I had a customer and he said basically, in our country we don't need security.
Starting point is 00:46:15 We'll find out. Are they on the moon? Are they not connected to the rest of us? They definitely are connected to the rest of us but I'm not sure whether they see that they're connected to the rest of us? They definitely are connected to the rest of us, but I'm not sure whether they see that they're connected to the rest of us. That was interesting because basically they said they are producing in France, they're producing stuff that's not connected to the internet and so on.
Starting point is 00:46:44 They said, we don't need security. Well, if I produce in Germany, there's still a Chinese company creating a copy of my device. Right. And I don't want that. Okay. In the beginning, I might want to have that
Starting point is 00:47:01 because as I copy it, there are millions of devices out there. People get used to it. And at some point, I want to stop it because then they copy it there are millions of devices out there people get used to it and at some point i want to stop it because then i want to earn money well that's um yeah and yet you really don't want to have your devices out there copied free will and same time you don't want to have your devices being abused. Takes the worst case if you're looking into medical devices and the medical devices being abused, it can lead to death of the person using it.
Starting point is 00:47:34 That's something you don't want to have. You don't want to have someone tampering with your device if it's a medical device. And that's all things that's required and people start to pick it up, but that's not
Starting point is 00:47:49 nearly where we think it should be. I think even the media says it's important, but it's not really
Starting point is 00:47:59 down to all the customers out there. Still many customers who need to convince the management that they have to invest the time to create the customers out there. There are still many customers who need to convince the management that they have to invest the time to create the right concepts because the weakness about security is basically not that the tools are not there.
Starting point is 00:48:15 The weakness is that you have to have a decent security concept. And the decent security concept means that you have to look at many different aspects of the system and how this can be manipulated to do things you don't want it to do. And the most straightforward thing that many people do wrong in their concepts is actually key stored. If I store the key on my embedded device I have to make sure that nobody is able to read it out and some people say okay when I encrypt it
Starting point is 00:48:53 what they forget is if they encrypt it on the device the key for the encryption is somewhere I liked what you said about not being a tool problem because so often people approach problems they have, whether it's security or something else, by saying, oh, I just need to get this tool and it'll fix my problem or tell me how to solve it. And really the best tools can do is verify
Starting point is 00:49:16 that what you think you're doing is what you think you're doing. And if what you think you're doing is wrong, they're not going to help you. So if you have a terrible security model, yeah, your tools might tell you everything's fine within that model. But if you don't understand what you're doing, there's no tool that's going to help you except, you know, a book. All right. I can hear that your voice is starting to go, Dirk. And I do want to ask you for that final thought to leave us with.
Starting point is 00:49:44 So why don't we go ahead and do that and thank you so much for being on the show I really appreciate it and so now do you have a thought to leave us with? Actually we've been talking about debuggers and most people actually use a debugger to solve a problem. And from my point of view, it's rarely really a problem. It's just that we don't see the solution directly.
Starting point is 00:50:20 The solution at times can be found in advance. So we just need to take a step back and look at the things in a different way. And usually even at some point you find it sounds easy. It's not, definitely not. There are tools there that should make it easier. We've all spent so much time debugging. We'll definitely take any help we can to reduce that time because testing is always that part most people don't like. Cool.
Starting point is 00:50:55 That is good advice. My guest has been Dirk Ackermann, Partnership Marketing Manager at SEGGER. I want to thank Christopher for producing and co-hosting. Dirk Ackerman, Partnership Marketing Manager at SEGGER. I want to thank Christopher for producing and co-hosting. And of course, thank you for listening. My final thought this week actually is not going to be a quote. It is going to be the concept of herd immunity.
Starting point is 00:51:46 If you are familiar with this, good. If you're not, it's the idea that people who get vaccinated for the flu can protect the people who can't get vaccinated. So if you're going home for the holidays and it's early October, now is the time to get the flu shot so that you don't spread it to grandma who can't get the flu shot for some reason. So, yeah. Dirk, thank you for speaking with us. I know you're not feeling great, but you do lead to a good example for the rest of us, and we should go out and get the flu shot. What is this public service announcement? It's over now. It's over now. Thank you. put them there and do not receive money from them. At this time, our sponsors are Logical
Starting point is 00:52:25 Elegance and listeners like you.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.