Why do all Intel processors need a BIOS? - intel

In the ARM world vendors supply their own BSPs to initialize board peripherals. Intel boards that you buy on the market all seems to come with some version of BIOS. Does BIOS do thing that BSPs cannot do? What if some hobbyist or engineer wants to do development using Intel processors but do not want anything to do with the BIOS? Why restrict programming with a layer of firmware that programmers have no source access to?

Typically the BIOS is no layer of firmware but rather the firmware to boot the system. After booting control is provided by the OS such as Windows or Linux.

This is not really my area, but ....
The initials BSP are heavily overloaded. It appears you mean board support package and not Boot-strap-processor or one of the other computer related terms that use those initials.
It is my understanding that BSP's (board support packages) are primarily used for embedded systems and indeed, when I did a web search on 'Intel bsp', most of the hits were discussing Intel Galileo and Intel Edison boards, which are targeted toward IoT (internet of things) projects and other embedded projects. But I also found BSP's, for sale and for free, in executable and in source form, for a wide variety of Intel boards. If you are working with Linux, you might want to check out https://www.yoctoproject.org/ .
I don't know if there are any vendors packaging a BSP with an Intel board, but it is certainly possible.

The only open source boot firmware for Intel processors that I know of is coreboot. It doesn't support every board. If you are building your own board, then you could customize it to work with your design. A typical modern BIOS has lots of bloat such as ACPI and UEFI that you may or may not want.

Related

OrangePi Lite2 OpenCL Driver

I have recently purchased OrangePi's Lite2 development board, with Allwinner H6 SOC, which includes Quad-Core A53 + T720 Mali GPU.
In the H6 SPEC, it clearly states that the GPU supports OpenCL 1.1 API, however, the Ubuntu (Desktop vesrion) image I've installed from OrangePi's site doesn't include the OpenCL driver and I cannot find it anywhere on the web.
Is it possible that although the GPU itself supports OpenCL (in terms of hardware) Allwinner never implemented the driver for it? Or am I supposed to somehow recompile the Linux kernel with the Mali drivers?
As stated in Arm Community:
In this instance the SoC (System on chip) for the OrangePi2 is by Allwinner. You will need to contact Allwinner and ask them if they are willing to provide Shenzhen Xunlong Software the binaries you need for the OrangePi2.
The respone I got from AllWinner was:
Sorry,we do not open the OpenCL driver platform.
Which I translated as "Good luck in your future endeavors"

Can the Intel Edison MCU be used without the standard Yocto linux?

Is it possible to use the MCU on the Intel Edison without having the standard Yocto Linux installed?
At the moment I have downloaded the specific Eclipse MCU SDK and have been using that to program the MCU on the Edison. I have the newest version (from Intel's website) of Yocto on the Edison as well.
If I switch to e.g. Emutex's Ubilinux will I still be able to use the MCU in any way? With or without the standard Eclipse MCU SDK?
The main reason I want to switch to Ubilinux is to have an easier time using ROS (Robot Operating System), but this is not strictly relevant to the question.
The Quark core runs its own Zephyr based OS, but I do expect some sort of support to be required on the Linux side too for intercommunication between CPUs. As dwelch said, the required drivers might be there for Ubilinux too.
If you are specific about ROS someone is working on adding it to Yocto. A quick google search also returned an unfinished project of ROS on Edison.

Is ROS (Robotic Operating System) compatible with all robots?

I need to know if ROS can work with all kits? or needs specific requirements?
I mean, can I buy any kit and control it by ROS?
If yes, is there any needed chip, ports, or connectors?
Thanks in advance.
You should use http://answers.ros.org/questions/ for questions regarding ROS, but yes, it is in general robot-agnostic.
No, not all robots. Only robots with X86 or ARM hardware that can run Ubuntu Linux.
There are also experimental versions of ROS for OS X, Gentoo Linux, Arch Linux, and Android (NDK)
When choosing your hardware platform, consider ROS support for various sensors and actuators, as well as the library of packages that add other capabilities.
Here's a very long list of robots that use ROS.

Is microcontroller development kit can be used for programming any number of microcontrollers

I am a non technical person and trying hands on making devices. i have one stupid question. I want to know, is micro-controller development kit can program unlimited microcontrollers (programming will be same for all micro-controller) or we need separate micro controller development kit and separate microcontroller in every device?
You have to read the license for the tool when you buy it, some yes, some no. Often you dont use the developers kit to program the parts, you use a programming tool (which may or may not be part of the same kit) for production. Some tools will program different vendors parts or all the parts within a vendors product list, but in general that is not the case. depending on the device there are a lot of free tools (avrdude for example) that dont have restrictions, but it is vendor/chip specific as to what tool will work for the microcontroller in question.
Simply read the docs on the tool you are interested in to see what it does and doesnt support, read the license agreement to see if there is a limit on the number of devices per software license.
Each type of micro-controller will have its own development kit. That kit works with all the same or similar micro-controllers. But, you will need separate micro-controller for each device.
There are plenty of coffeemakers and washing machines with a microcontroller in them. And clearly the manufacturers of those don't buy microcontroller dev kits by the billions. That would be unaffordable.

How to start developing with microcontrollers?

I want to be able to build my own small electronic device that just has a few buttons, and stores each keypress inside a memory.
I am a pretty experienced programmer but I have no idea where to start regarding hardware, or what to search for on google.
Please give me any info that can help me out.
Arduino boards are inexpensive and the platform is wildly popular. I buy stuff like that from sparkfun.com in the developer area down the left side of the page. At sparkfun you will also find many other similar eval boards from various vendors. I like the lillypad over the arduino pro mini only because it has the programming pins already soldered. You will want the ftdi usb serial board thing for power and programming. I am a fan of the armmite pro, which is arm based. the mbed2 is real easy when you plug it in it shows up like a thumb drive, you copy your .bin file to it and press the button and it loads the program and runs it. The blue leds give me migraines but that was solved by replacing with green leds. I have a number of the header style olimex boards, good stuff, have never used the ones with displays and buttons though. Going to other sites the ez430 msp430 is a good starting platform but no buttons which you are interested in using, the stellaris cortex-m3 based family is good I would skip the 811 board and go for maybe the 1978 or something in that range, the 811 is too easy to brick.
Most of the ones mentioned above (not the olimex boards) have sandboxes for you to play in safely (turn key development environments), but at the same time you are not locked into those environments, you can do your own thing if you like, use different toolchains, flash programmers, etc. I personally would avoid the lpcxpresso for that reason, painfully tied to both windows and their sandbox.
the sam7-h256 for example, an olimex board, is powered by the usb, and a program called sam-ba is used to load your programs into the chip. That particular board does not have buttons but boards in that family are also programmed the same way. basically one usb cable for power and programming. And like the AVR (arduino and avr butterfly are based on the avr micro) the at91sam7s is an atmel part. Atmel seems to have that edge over competitors for better documentation and support. At least my belief is that contributes to the popularity of the avr (the avrfreaks website existed before the avr butterfly and the arduino), and it certainly makes me like their arm based products.
short answer, start with http://www.sparkfun.com along the left side click on Development Tools, and there are many solutions. You want to find something like the arduino, armmite pro, mbed, that either standalone or with a ftdi based usb thing you both power the board, and have an interface for programming. There should be links on the page to websites with development tools, compilers, etc, and tools for actually doing the loading of the program on the board. I recommend trying the arm, avr, and msp430 micros, as well as different vendors (many different arm based solutions with their own pros and cons for example).
The arduino platform is a cheap and easy option.
search for arduino and netduino
What language do you program in?
Arduino uses a C like language.
Netduino uses C#.
You can get a NXT kit (yes, LEGO) and use RobotC.
I can only advice how I started:
Get a bread board and some ATMel microcontrollers (ATMega16 is perfect for beginners).
You can either buy an STK500 or you use the In-System-Programming feature, and ask someone that can build you a programmer (I recommend USBasp). When you use Linux, use AVRdude and the gccavr toolchain. Under windows, you can use the WinAVR studio.
And buy some components, like resistors, capacitors, probably a quartz crystal to make simple circuits.
That's how I started anyway.
Arduino is based on Atmel AVR, so the same Arduino or STK500 board can be programmed with AVR Studio + WinAVR combination, which is nice if you already have experience in GCC. For all additional info and tutorials take a look at http://www.avrfreaks.net

Resources