If you are looking for a small uP to use as a real-time controller, today in 2017 its the ARM cortex M. The range is wide enough that you can find one to suit. At the low end there is nothing to be gained by going with say, Atmel AVR or some other 8-bit chip and at the high end are some 32-bit 200MHz chips.
Cortex M does not run Linux and that is the good thing if doing real-time. But still I'd NEVER write to the "bare metal". Not only is that very time consuming but then your code is forever tried to one specific chip. In stead choose a good RTOS to run on the Cortex M. This will come with a very light weight hardware abstraction that will let you do things like connect a timer output to a specific pin in a portable way Yes you can work with only one loop to task but many times your work is made easier and you introduce fewer bugs if you divide the job into multiple tasks. For example monitoring limit switches while generating pluses and at the same time reading commands over a serial link and also maybe even writing to a debug log file that lives on an SD card. On my robot platforms I have 4 or 6 wheels each driven with a DC servo motor from a LiPo battery. The Cortex M gets commands from a Linux powered Pi3. The commands are in the form of translation and rotation vectors. The ARM M converts this to motor currents for each motor and reads the motor encoders and create PWM for the motor h-bridge controllers. I'm using an RTOS and writing in C++. The M4 under an RTOS is fast enough to run 4 PID loops, generate PWM and service 11,000 interrupts per second from four quadrature encoders and also read a 9-axis IMU, update a small LCD status display and write to the debug log. I have several different ARM M boards some M3 and some M4 from low to high end from a couple different manufactures and the code moves between boards I learned long ago that portability is impotent. Suppliers change their product and you want to be able to take advantage of newer advances in uP as they come out. On Tue, Jun 13, 2017 at 8:31 AM, Nicklas Karlsson < nicklas.karlsso...@gmail.com> wrote: > > > Maybe there is no need for a linux kernel. Have you read the manual > for the > > > ARM CPU? Or what kind of CPU is it? > > > > RPI3 uses a quad-core ARMv8 (Cortex-A53) with all kinds of bells and > > whistles. Have you read the manual for that core? > > No and I did not read the manual for the smaller cortex-m* cores either > even though I use them daily. > > > I've been using many of those small ARM cores (M0...M4) from different > > manufacturers and each is about a 1000 pages. The core in the RPI is > > utterly more complex. > > I have only read manual for a few of the peripherals I use and that's > enough. > > > > > But, if that is not enough, there are so many internal and external > > peripherals that you need to go through all other documentation too. > > Designing and writing a bare-bone OS is an uphill battle and you do not > > want to do that if there is no /extremely/ specific need. > > > > Linux provides an infrastructure that is very hard to write yourself, > > like file-system, network, process- and memory-management to name a few. > > Just consider the amount of dev-time that is put into Linux. > > In no doubt there are plenty of infra structure and if the infrastructure > is needed there are not much choice. I think there is need for only one > task and have been looking on some of the smaller micro controllers. > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Emc-users mailing list > Emc-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/emc-users > -- Chris Albertson Redondo Beach, California ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Emc-users mailing list Emc-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/emc-users