I love how this turned from "hello world on a cheap new embedded chip" to "summarize and compare 40+ years of instruction set architectures" while still being comprehensible!
It's a nice, well done video. I did notice one problem though: Andrew may have confused Arm and MIPS because he said Arm is like RISC-V in not using flags/condition codes. While ARMv7 (Thumb2) added "cbz"/"cbnz" instructions that branch based on the contents of a register, Arm in fact has NZVC condition codes in the DEC/Motorola tradition (PDP-11, VAX, 6800, 68000, 6502 etc) and all other conditional branches are based on those. The Milk-V Duo is a nice little board and the 1 GHz CPU pretty capable, but the 64 MB RAM is a little limiting. It's enough to run emacs and gcc on the Duo itself to write and compile small to medium programs, which is cool. Meanwhile Milk-V has announced the Duo 256M which increases the RAM to 256 MB, and (weirdly) adds a 1 GHz Arm A53 core to the 1 GHz and 700 MHz RISC-V cores in the original Duo. Price and shipping date haven't been announced yet.
So technically we could run statically compiled Go tools on it? Not sure if goc supports RISC-V, but since GCC does, GCCGO should work I guess. Edit: Just looked it up, there's actually a goc port for RISC-V. Nice!
_Very _*_COOL_* , when younger I did some basic electronics This makes me wanna get BACK To it (totally) *And ALSO* Learn Linux I'm faintly familiar with Linux but....... This is *COOL HARDWARE* ....... Great Presentation
Very much appreciate your level of explanation and obvious enthusiasms about the topics (and to see you are a fellow t-shirt connaisseur ;-) ). Subscribed and judging by the other comments on this video, I think the algorithm has found you and is pushing you (37K as I write this). Enjoy the ride ;-). Looking forward to watching your older and new video’s! All the best from 🇳🇱
Great video! Can you suggest any serious application (in the sense that where it's necessary to use) of embedded system that is required by the industry? P.S.: I live in India & here the home automation/smart home doesn't really have any demand
A little confused by the Ko-fi. Above (on YT) it says *and I'm not letting anyone pre-order*. The Ko-fi page is headlined "Sold out", but also says "Note: Orders will open when I receive the boards". So keep checking Ko-fi until you receive units and offer them for sale? This sounds like great fun and hope I can buy thru you. Oh, will you have the rPi formfactor ether/USB board? Tnx. (Great video, love your coding chops!)
I set quantity to 0 so the page can exist but they haven’t arrived yet.I’ll post an update there and on the community tab when they arrive so I can open orders.
@@apalrdsadventures Tnx for the clarification. I have added comments that detail my experience using the Arace Tech Website (bottom line, maybe will get my order in November). Rewatching this vid, it was so good. Tnx!
linux is kinda overkill depending on what you are actually planning to use it for. for a lot of embedded stuff an RTOS may be more suitable, but since linux is easy to find stuff for its kinda nice to just have a full OS for. and yes. the unix/*nix/linux way of making basically everything a file is super cool
It's certainly a useful and valuable design paradigm, even if it isn't perfect in every situation. Too much complexity at the bottom of the software stack can really make a mess. --- That said, you can "have a whole OS" without necessarily including the Linux kernel and GNU tools. CP/M and MS-DOS, among hundreds of other historical example, were all /operating systems/ in their own right, even though many had little or no built-in support for any kind of local networking of machines.
Isn't Linux a "everything is a file" OS? The webcam? A file. The screen? A file. Your keyboard? A file. A file? A file. Nothing? You guessed it, a file.
@@top.of.reddit For the most part. Since Linux is "Unix-like" and not a real UNIX system it doesn't always follow that design pattern, though. For most hackers and makers it's useful, though! I'm about to start working on a script to control a USB-connected CPU fan using the USB device files, for example.
@@merthyr1831 : A lot of the certified Unix distributions didn't make everything a file either, it wasn't actually rare. At any rate, the "real" "everything is a file" OS is Plan 9 and it's derivatives, which a bunch of the original Unix guys created as a successor to Unix- in essence, enough of a mess had developed in the Unix space that they had enough reference points to figure out how to make an OS be more Unix than Unix itself. Anything with FUSE support can be turned into a Plan 9-alike, so much of the *nix world will probably eventually drift over in that direction.
ARM has sorta pay for what you need with the Cortex M/A/R families, but you still have to buy the core from ARM, with no options for alternate designs or designing the core yourself, and there aren't very many options.
Man, it's so refreshing to hear about a device from somebody that knows what they're talking about (mips, arm, ppc experience). Does this little chip have any audio capabilities?
It doesn't show up in the peripheral docs, but it looks like it does potentially support using the ADC input for audio. I'm not sure really. My guess is yes, since it's a security camera chip, but software support might not be all there.
@@apalrdsadventures According to the docs there is an audio subsystem with I2S and PCM capabilities. Also, regarding the RISC-V branching instructions, I am not sure what you mean by doing a subtraction first. RISC-V doesn't need an extra subtraction, it happens internally with the branch instructions, which admittedly is a small difference. By the way, BEQZ is not a real instruction, it gets expanded to BEQ x0 by the assembler. The compiler here hides some things.
I'd love to see more like this. I've recently finished work as full time developer, I never got to do low level stuff but I was always interested. Here's an idea, maybe you could put together a short series of videos, say half a dozen, introducing people to RISC-V and low level development. We could pick up a board like this for cheap it to follow along. Obviously, this is a huge amount of work you'd have at least one person that was really interested :)
I have a video coming up using this to build a display, so I'm sure there will be plenty of embedded programming in that video. The nice thing about using Linux on this board is the development setup is way easier than using a microcontroller.
@@apalrdsadventures Subscribed, and waiting for that video. I was thinking of using this board to drive a SSD1322 Oled at +60fps to replace some unobtainium VFDs.
small correction: morse code is not a Huffman code, since it doesn't satisfy the prefix-property (meaning that no encoded letter is included at the beginning of another letter), which is the main point of doing Huffman encoding anyway. the benefit of these prefix codes is, that do not have to incorporate separations for letters, since you know exactly when a new symbol starts. there also exist "morse" codes which are prefix codes, but those are not as commonly used/known as the standard version. small example for the point above: take the morse sequence .-. this can be anything from these words: AE, EN, ETE or R with a prefix code (such as a Huffman code), there would only be one possible translation, even when omitting separation
Fabulous hands-on with affordable hardware I didn't know exist! Very nice explanation at the end about different architectures! (BTW Big thanx for doing some magic on the audio side of things! Excellent listening experience with this video!)
This is one of the best videos I've seen in the past few months, at least. Super well explained, useful interjections and lots of info about the different asm variants. Plus the board itself looks super interesting, I just wish there was a European reseller or something. Or that it wasn't sold out... Again, excellent video, keep up the good work!
@@therealchaydThey do, but it turns a 10€ computer into a 30€ computer. Plus the possibility of huge import taxes. At that point you might as well get a more capable device. It's only worth it if you're buying in quantity.
I'm really hoping it starts to take over the more niche markets that aren't as well suited for ARM and grows from there. But also, it seems like China is very enthusiastic to make RISC-V based chips to reduce their dependence on ARM Holdings, which should help the whole ecosystem as long as these changes make their way back to GCC / Linux / .. mainline, which at least for this chip is already done.
@@apalrdsadventures yes, but the idiot senators didn’t care and wanted to forbid american organizations from working on it (not at all for corrupt reasons where they own companies who risc-v would cause more competitors to)
@@apalrdsadventures But Linux actually runs on the ARM core, doesn't it? How do you control wheater to use the ARM or RISC cores? That is what got me to look up this board in the first place. It also has a 8051 core. Why is beyond me. Couldn't you just emulate that? Anyways. Interesting video. I learned a few things about all the differenct insctruction sets. Although I propably missed a good deal that's just over my head.
I like RISC-V. It seems highly comprehensible. This board and the work they put in to making it accessible and usable seems exceptional. I'll pick up a couple. And your discussion of it and of ISA's really enhances and completes the package! Thank you!
Been messing with MIPS64, not with SGI hardware (tho I've got an Octane2, O2 and others) but with an Exablox RAID appliance that I picked up on eBay and discovered it's a Cavium Octeon 6-core machine running on a barebones Busybox Debian, 16GB of RAM. Octeon hardware is pretty interesting as there's hardware packet processing, hardware REGEX for packet inspection and gzip compression in hardware.
milkv.io/docs/duo has links to the repos on Github, there's a port of WiringX (which is an Arduino-like library for Linux SBCs) already with instructions and examples in the docs.
a great job on explaning the assembly for each different architecture ^^
11 месяцев назад
Raspberry Pi was also supposed to be a cheap alternative for hobbyists. Now it's more expensive than some Intel SBCs. Only time will show where it's all going.
Ah, backwards compatibility with the 70s. Where would we be without it??? Well, in the 60s I guess, since everything since then has had it. Hooray for consistency.
I love the way you present "the most complicated way of producing the ubiquitous 'Hello World' program yet" in such a deadpan manner. apalrds adventures is always full of funny, if unintentional, turns 😂😂😂
As an old "full stack dev" (including assembler on some archs) - it was a joy to listen to your presentation. The right level and speed for a more tech savvy audience. Thanks 🙂
Wow! I'm seriously impressed by your knowledge and, of course, this video. I was as involved with assembly language 50 years ago as you are now. I cut my teeth on the IBM 7074 and the CDC 6000 series. I also dabbled in Z80, 8080, 6800 and 6502. I wrote a rudimentary OS for the 6502 using a Tarbell floppy controller and a couple of 8" floppy drives all in assembly language. So this video took me back. Thanks!
CDC 6000!!! Wow! Arguably the first RISC ISA (Cray 1 was the 2nd), though the term hadn't been invented yet. With 15 bit and 30 bit instruction lengths it was really quite similar to RISC-V or Thumb-2. The only really weird (but valid) thing was there were no load or store instructions. Instead you just stored the desired memory address into one of the A registers and the corresponding X register was automatically loaded (A1-A5) or stored (A6-A7) from memory. I fall between you and Andrew. I started with 6502 and z80 (and TI and HP programmable calculators before them), went to university and used PDP-11 and VAX, and by the time I graduated the first 68000 Mac was out. I worked on a DG MV10000 supermini (VAX competitor) for a couple of years, but from 1987 on was exclusively Mac, then Linux in the late 90s when MacOS 9 was looking very dated, then back to OSX in combination with Linux. Later I got into compilers and ISA design (proprietary and RISC-V).
I thought that the Duo was doomed to obscurity, but it's been amazing to see it get more popularity and support. Fairly recently I setup X11 forwarding (something it shouldn't do) and used MPV to rickroll Milk-V forum members lol
@@apalrdsadventuresyes, for some reason Milk-V includes a whopping 256mb swap partition with the default image, but you need to manually mkswap and swapon it yourself
I've done assembly programming on the following systems: DEC PDP-8, DEC PDP-11, Intel 8080/85 (& Zilog Z80), Motorola 680X0, IBM 360/370. At Bankers Trust of SC, I had to add the check number to a tape that was read by a microfiche writer. The PL/1 was impossible to understand with way too many GOTO's. I rewrote that in 370 assembly. The mainframe operators said that the program nearly spun the tape off the tape drive.
It's fairly implementation-specific, but this particular board uses about 0.4W in my testing (I think there's a pic with the USB-C power meter at one point). It's not doing much computational work, but it's also using basically no power. I'd need a more powerful SBC to do a better test.
RISC and CISC are general terms in computer science that describe the inherent complexity of the core instructions. --- Intel x86 hardware is nominally based on CISC design concepts, whereas Berkeley RISC-V is a fairly new architecture based on RISC design concepts. --- It's hard to make a real comparison of power consumption without comparably performant hardware, because you really want to measure computational power/watt of electricity consumed.
Excellent video. I like your straightforward approach of showing the board...showing the compiled code. Good explanation of instructions and history. I have been working with low level code for 12 years now and did not know about the 16-bit ones 😂😂
Didn't expect to dive into systems architecture like this when I opened RU-vid for dinner, but thanks! The sysadmin stuff is what I do myself, this is a topic I'm not familiar with (other than hearing about it) so this video was really interesting and so well explained/delivered I feel like I actually understood!
I come from the computer science world, so while I did some assembly (in MIPS) in college it wasn't a major part of my education. Also did only a little with hardware. If I could do it all again I think I might have chosen computer engineering. I tinker around with dev boards and I love the hardware side of things. While the pure theory stuff with algorithms scratches an intellectual itch, the fact is we live in the physical realm and doing stuff with microcontrollers and small boards and all the various I/O they offer makes for some fun and very practical projects. Honestly, college was wasted on me. I had all this opportunity to take classes in network security, robotics, computer engineering, etc. but never took advantage when I was there. I just wanted to get my degree and get out into the real world. I should have taken so many more electives in related fields. So now I just learn this stuff on my own with the internet as a resource. I'm also really into radio stuff, got my ham license.
Hello! OI just found your channel! I am so happy I did, you do so many things I want to do or am doing. Use Linux a lot but you do so much more than me. Programming in SDL2 on linux mostly but I have other things too. Looking forward to catching up on all your videos.
Wish there was an existing yocto layer, I think buildroot is kind of old school, well ordered some of them anyway to try some stuff, not a few more dev board laying around that is gonna hurt :P
Really enjoyed your presentation and video. I especially liked your c and asm walkthrough. I think you would make a GREAT teacher as well. Looking for more content like this.
we need clx for prosumers and also gpu #eat the document this was an informative look as you included all the arcane and dirty work - setting it up and looking at what is included - riscV will be a force in a few years and challenge arm and x86 - more room for innovation
What else could I ask for? How about OpenSPARC T2 running illumos, that's what! IPv4 isn't legacy, and even if it were, it's human readable and easy to understand. All these boards are toys, how many 1U rack mountable RISC-V servers are out there available to buy, and how many run an illumos distribution? And it's not "assembly" (only lamers call it that), but assembler the application and assembler the language.
You're bad ass dude! Thank you for sharing! I plan on teaching myself assembly on RiscV before moving on to high-level languages and was impressed with how many ISA's you were familiar with. I was like, "Damn.....I'ma suck!" 😛
Speaking of x86 assembly... (Algorithms class, Day 1) Professor> You can use any language you want… Me>Even assembly? Professor> [ignores] ⁝ (Program Demo day) Me> [shows MASM on the screen] Professor> [surprised Pikachu] Me> You said *any* language…
3:36 THAT is a LIE..... I could NOT GET linux to work on my computer..... in 2023!!!!!!! There is a channel here on youtube with a guy OBSESSED to get people to put linux on their computer (nothing wrong with that). I luckily found the "best fit" linux to try out on his channel as he shows over 40 different linuxs..... and could NOT GET IT to run on my computer. Correction: It DOES RUN on my computer, but, you know..... EVERY SINGLE TIME I boot up, it seems to be compiling the kernel over and over again on every restart, and I have to answer the same 7 or so questions again about my computer BEFORE I CAN USE IT. Verdict: linux, up to Oct. 2023..... UNUSABLE BY AVERAGE USER.
how about risc-v gpu's (gpgpu cores), yeah just use the risc-v cores as gpu cores directly, with one of the core as central core to feed them. or not central access but mutex concurrent uniform memory access from each core independently.
Is anybody selling the IO board with CAN BUS transceiver? I would really be interested for CAN FD support, so one could maybe use it with many devices on a single twisted pair. Ethernet is great, but requires quite a bit of cabling, relatively bulky connectors and a switch, but with CAN you could optimize it quite a bit, and still get decent bandwidth for a lot of things. EDIT: It looks like there is actually no CAN controller in this chip. You need external CAN controller and transceiver, and connect using SPI. The board they use is designed to use XINLUDA XL2515 controller and XINLUDA XL1050 transceiver. And controller only supports CAN 2.0B (at least with extended frame support), no CAN FD tho. I checked XINLUDA other options, and there is no combined controller + transceiver (possibly it is not allowed in some automotive applications), but because it is just SPI, I am sure I could find something else instead and design the whole board appropriately (the SoC can be bought instead, for 2.4$ per chip, at 5pcs quantity).
ISA of the controller hasn't mattered much of a long time, are the peripherals good and easy to use? If not... stop wasting everyone's time. Microcontrollers are ALL about peripherals. Do the UARTs suport high baud rates, IRDA and other features niche designs will need? Does it have pin remapping... these are things people need to know.
I love all these dev boards but for embedded systems it would be hard to beat the older chips like Z80 or 6502 (and derivatives) with mature development tools. These chips will be great for edge computing and custom processing. Love the innovation here.
Can it run Lem Editor? Ncurses of course. As a test, to write a Machin-Like formula to calculate Pi to 100 and 1000 digits, how long would it take? on this MilkV board?
Better for machine control, because it doesn't have to do calculations, more or less dealing with libraries and no floating point needed.. that can be off loaded to the 'master'. Speed can matter and 2 core, if programed right gives a back-up redundancy in critical implementation.. a worker and a guard that can pickup the worker's implementation and flag operation, but still get communication and operational results if a core freezes. Code smart and know your core kernel functions. I wish that they would do some of the micro controllers in dual core and 16 bit..
Thanks for the video. I like RISC-V because I'm not locked in a ARM hold. Went to mentioned links but seems sold out. Will try back on occasion. Liked and subscribed!
delivery more than the board :( Maybe on taobao would be cheaper but I couldn't register because confirmation SMS didn't come. So had to order raspberry pi 2 zero for the next project
whoah, but 9 dollars + any additional ubgrades is not 9$ does it send wifi? blueutooth? cuz if i need to replace all my current wireless cameras with wires thats not gonna be easy. but i like your explanation of the morse code
the typing noise of the keyboard is way to loud. turn it down in your future videos please. it was so annoyingly loud that i was about to leave the video. i will not watching any of your other videos because i'm afraid i have to hear that loud typing noise again.
@@apalrdsadventures the ctype functions are very efficient, but require an array of at least 128 bytes, or a larger sized-type to hold more flag bits; which might be too much for some embedded systems.