[HN Gopher] So you want to build an embedded Linux system?
       ___________________________________________________________________
        
       So you want to build an embedded Linux system?
        
       Author : sebg
       Score  : 131 points
       Date   : 2022-02-09 14:55 UTC (8 hours ago)
        
 (HTM) web link (jaycarlson.net)
 (TXT) w3m dump (jaycarlson.net)
        
       | blueflow wrote:
       | I have issues with the section "Microcontroller vs
       | Microprocessor: Differences"
       | 
       | Microprocessors are just the CPU, usually with the system bus
       | wired out. Microcontrollers are combined systems, which include a
       | processor and usually some kind of firmware storage and RAM. You
       | can usually differentiate them by whether their pins are
       | address/data lines or gpio-like.
       | 
       | > microprocessors have a memory management unit
       | 
       | The 8086 didn't. Having an MMU seems unrelated to the MCU/MPU
       | distinction...
       | 
       | At least, this was my knowledge until now. Is this like "crypto"
       | where the meaning changed while i was not paying attention?
        
         | Terry_Roll wrote:
         | There is no global standard of definitions, what you might be
         | seeing is the difference in the educational system in different
         | parts of the world.
         | 
         | We know definitions change over time because slang words come
         | and go and someone's vocabulary can be used to identify people
         | online or identify their knowledge.
        
           | blueflow wrote:
           | Whatever, but if someone of the "Distinction Criteria is
           | existence of MMU" crowd comes and claims the 8086 is not a
           | microprocessor, because it doesn't have an MMU (which would
           | be a logical conclusion from the article). i'll probably not
           | be respectful.
        
         | seniorivn wrote:
         | a lot of people have been calling desktop computers
         | "processors", does it mean that the meaning of the word has
         | changed?
        
           | blueflow wrote:
           | because thats correct for most x86-compatible computers, x86
           | is or was the dominant desktop architecture.
        
         | foxfluff wrote:
         | It's a pointless distinction by and large.
         | 
         | Microcontrollers may or may not have storage for firmware.
         | Requiring an off-chip flash is nothing new. Microcontrollers
         | have SRAM, but so do processors. That's where the firmware runs
         | before it gets the DRAM running. Microcontrollers may include a
         | bunch of peripherals, but so do processors. Especially so if
         | you refer to SoCs as processors, like the article here does.
         | And SoCs stir it up further: they have tons of peripherals, and
         | we also have SoCs with on-package DRAM. Discrete SRAM chips
         | exist too, I figured there must be microcontrollers that can
         | use them (but I haven't actually looked).
         | 
         | Yes, the terminology has evolved.
        
           | blueflow wrote:
           | The distinction used to be "Whether the bus is exposed
           | externally".
           | 
           | > Microcontrollers have SRAM, but so do processors. That's
           | where the firmware runs before it gets the DRAM running.
           | 
           | Which microprocessor architecture does this?
        
             | joezydeco wrote:
             | NXP LPC is a big one. Most of the families have an external
             | memory controller (EMC) block that can drive an external
             | DRAM at a small multiple of the system clock frequency. The
             | EMC init happens in the secondary boot, usually loaded from
             | the small on-board flash or an offboard EEPROM.
             | 
             | I regularly use the 1788 + a meg or two of DRAM to hold an
             | LCD framebuffer. The LPC has a really nice interconnect
             | between EMC and the internal LCD controller block and will
             | drive the display all on its own (with a hardware cursor)
             | once it is initialized.
        
               | blueflow wrote:
               | Duckduckgo, "NXP LPC", sidebar, quote from wikipedia:
               | 
               | > LPC is a family of 32-bit microcontroller integrated
               | circuits by NXP Semiconductors.
               | 
               | Not a microprocessor. You are the second guy to pull this
               | on me. Do people even read what i write? Did i write
               | unclearly?
        
               | joezydeco wrote:
               | Perhaps you're just outdated. Nobody ships a core alone
               | on a chip anymore. That died with the 68000 or ARM7TDMI.
        
               | blueflow wrote:
               | x86 is a classic microprocessor architecture. I'm
               | confident it is not outdated yet, as im using a fairly
               | modern x86 desktop right now at the moment. RAM and
               | chipset are separate from the processor.
        
               | detaro wrote:
               | > _x86 desktop right now at the moment. RAM and chipset_
               | 
               | "chipset" is very different than a traditional
               | microprocessor chipset though on that. E.g. you don't
               | have an exposed system bus outside the CPU, but rather
               | specialized interfaces. (And ARM systems have evolved the
               | same way over their history)
        
               | blueflow wrote:
               | What about the slots i plug my RAM sticks into? Do they
               | not count because it goes over the north bridge?
        
               | joezydeco wrote:
               | Then maybe the hackers using x86 boards in their
               | 'embedded Linux systems' can chime in.
        
               | blueflow wrote:
               | Perfect, as i own a RDC 3210 board. Here is someone else
               | with the same board + pictures:
               | https://forum.archive.openwrt.org/viewtopic.php?id=19168
               | 
               | It has a x86 Microprocessor architecture, but it is not
               | IBM PC compatible because it does not has an BIOS,
               | instead using a more embedded-style RedBoot setup.
               | 
               | Maybe you should do a quick web search before talking
               | shit.
        
             | AlotOfReading wrote:
             | Most of them? Pretty much every ARM board supports an SRAM
             | boot stage, for example. If you're using U-Boot, it's
             | pretty likely that there's a SPL running out of SRAM
             | somewhere in there.
        
               | blueflow wrote:
               | ARM is a microcontroller architecture.
        
               | AlotOfReading wrote:
               | 1) This is a distinction without a difference.
               | 
               | 2) SRAM is almost always _on the die_ , not external.
               | Here's a die shot of a random STM32 (cortex M): [1]. The
               | SRAM is quite obvious.
               | 
               | [1] https://s.zeptobars.com/GD32F103CBT6-Si-HD.jpg
        
               | blueflow wrote:
               | It is a meaningful distinction. A microprocessor
               | architecture would require support chips, like a south-
               | and north bridge, plus RAM in additional chips.
               | 
               | x86 being the classic example. Here [1] is an example of
               | a microprocessor board, you can see the MX support chips
               | on both sides of the CPU. As you can see, the RAM (and
               | the most of the address space-mapped things) is not on-
               | chip. The bus is wired across the PCB.
               | 
               | [1] https://upload.wikimedia.org/wikipedia/commons/d/de/3
               | 86DX40_...
        
               | [deleted]
        
               | AlotOfReading wrote:
               | Even x86 has on-die SRAM that can be used in boot. It's
               | better known as L1, L2, and L3, but you can configure
               | Intel's FSP to make it usable for boot code with the so-
               | called cache-as-RAM feature. The technical details are
               | different than e.g. ARM because it's cache rather than
               | properly addressable memory, but the general idea is the
               | same.
               | 
               | All the RAM you see on the motherboard is _DRAM_. It 's a
               | totally separate thing and happens to be what the FSP
               | initializes after it loads stuff into SRAM.
        
               | R0b0t1 wrote:
               | These words are used interchangeably, you need to specify
               | exactly. The main distinction is does it have a MMU or
               | not.
        
               | blueflow wrote:
               | "VPN" evolved to mean proxying service, now people are
               | denying that my tinc setup is a VPN.
               | 
               | "Emulation" evolved to mean virtual machine, now people
               | are denying that wine or xterm are emulators.
               | 
               | "Operating System" evolved to require virtual memory and
               | paging, now people are denying that MS-DOS was an
               | operating system.
               | 
               | "Microprocessor" evolved to mean computing chips with
               | MMU, im waiting for people to deny that the 8086 was an
               | microprocessor because it does not have an MMU.
               | 
               | The infinite shitcycle of people improvising language
               | instead of researching.
        
               | anthk wrote:
               | Wine is not an emulator, it's a PE loader and a Win32 API
               | for Unix. And XTerm is more like a terminal _simulator_.
        
               | blueflow wrote:
               | Wine actually IS an emulator, just not the kind of
               | emulator you think of. While wine is not an virtual
               | machine, it literally emulates the win32 api.
               | 
               | https://web.archive.org/web/20150928042254/http://wiki.wi
               | neh...
               | 
               | I mentioned the shift of meaning to "virtual machine" in
               | the post you replied to, please read it more carefully.
               | 
               | Emulation and Simulation are different in some regard:
               | emulation is only imitating some aspect of a thing, while
               | simulation imitates a thing by using (usually physical)
               | models.
               | 
               | xterm is a VTxxx emulator, and VT simulator does look
               | like this: https://www.pcjs.org/machines/dec/vt100/
        
               | monocasa wrote:
               | I'd argue that wine is a bit of a stretch considering
               | that we're on the third implemention of win32 in
               | Microsoft land as well (DOS/win32s, Win95, NT/Win32k). At
               | that point win32 is a concept already abstracted away
               | from a specific implementation
               | 
               | I totally agree with your main point though that
               | emulation is a broader topic than is generally thought.
        
             | monocasa wrote:
             | Just about any with cache will let you pin last level cache
             | to assist boot up.
             | 
             | I've done this with PowerPC cores that no one would call
             | microcontrollers.
        
           | thrashh wrote:
           | It's such a blurry line now because with so many vendors, you
           | can find everything on a spectrum these days
        
       | lsllc wrote:
       | I'm curious how the landscape has changed with the chip shortages
       | since this was written.
       | 
       | My all time favorite SoM was the CHIP Pro, but sadly at $7 (or
       | was it $13?) it was indeed too good to be true and the company
       | went out of business.
        
         | joezydeco wrote:
         | Do you mean: have new readily-available parts been introduced
         | in the wake of the current supply shortages? The answer is no.
        
         | bigiain wrote:
         | I have a pile of them in my drawer, as many as I could get my
         | hands on (maybe 8 or 12?)
         | 
         | They're great. In my head they were "something that had the
         | stuff that annoyed me about RaspberryPis fixed".
         | 
         | I should dig some out and see if there's a way to update the OS
         | to something recent-ish.
         | 
         | I think I've still got a cluster of 4 of them, 3 running RTL
         | SDR and one analysing the signals and pulling interesting data
         | out. (Last data file I have here from that is Dec 2018...)
        
       | shaicoleman wrote:
       | (Oct 2020)
        
       | anthk wrote:
       | >. In Linux, you get a first-class network stack, plus tons of
       | rock-solid userspace libraries that sit on top of that stack and
       | provide application-level network connectivity.
       | 
       | JimTCL is very fun for that, and it would run on limited
       | machines.
       | 
       | Ok, not totally TCL compatible, and no TK, but you have (WIP)
       | SDL2 bindings, and SDL2 would work perfectly on a display handled
       | by fbdev/KMS.
       | 
       | > but blending and other advanced 2D graphics technology can
       | really bog things down
       | 
       | SDL2 can be really fast at low res displays such as 320x240. If
       | not, EFL from Enlightenment for sure could that fast enough.
        
         | gaze wrote:
         | EFL should never be recommended as a serious option.
        
           | pjmlp wrote:
           | Depends, maybe when the recommender is serious about being
           | exploited. /s
        
       | nickysielicki wrote:
       | Previous thread, 2020:
       | https://news.ycombinator.com/item?id=24800037
       | 
       | This article is awesome and has a ton of great knowledge, but
       | it's a little dismissive of openembedded, and if you click
       | through to the previous thread you'll see a lot of people come to
       | it's defense.
        
         | pmorici wrote:
         | The authors description of the two has been consistent with my
         | experience. Buildroot is a lot easier to get going with. There
         | might be good reasons to use yacto but if you are new to all
         | this I wouldn't start their.
        
           | [deleted]
        
       ___________________________________________________________________
       (page generated 2022-02-09 23:00 UTC)