1

I have experience with Cortex-M controllers (LPC series from NXP) and Keil. I want to move for cortex-A because my logic needs some better speed.

I found from internet that these processors will come with linux in it. How can i use my code directly rather than using linux??

I don't need IO pins.

Where should i start?? What IDE should i use?? And i found debugging of Cortex-A controllers is tough because it is involving OS. is it true? And is there any way without going for cortex A but achieving higher speeds (around Giga Hz)

user9268852
  • 104
  • 1
  • 6
  • 3
    If you really have experience with Cortex-M, you should have all of the knowledge to start with. But phrases like *processors will come with linux in it* are telling me that you might need a bit more background of what a processor is and how it works. – Eugene Sh. Apr 17 '18 at 20:52
  • +1 @EugeneSh. I think exactly the same. Probably the C&P "programming". If you do not need the I/O you just need a computer. Maybe Raspberry Pi is the answer. Massive power, OS, video and the small size. – 0___________ Apr 17 '18 at 21:08
  • Cortex-A is a really big step, expect that pretty much none of your NXP code will work at all on Linux. Your own code adding numbers shifting, whatever generic C code that will work. Your processor may be faster but timing on the peripherals might be much slower and less accurate and predictable. You may be better off looking at the Cortex-M4 or Cortex-M7, dont knwo what cortex-m you are using now. – old_timer Apr 18 '18 at 00:36
  • you should probably start with an armv6 rather than jumping to an armv7 or god forbid an armv8. Now saying that if all you plan to do is run off the shelf libraries (are there such things other than for the raspberry pi?) to wiggle the peripherals and do whatever you think you need to do at that speed and power and cost, then sure anything with any processor on it that you can write C code will work ARM is not relevant at that point, mips, x86, powerpc, whatever. – old_timer Apr 18 '18 at 00:38
  • How is the IDE relevant? – old_timer Apr 18 '18 at 00:39
  • you can do bare metal on these higher end processors, the raspberry pi has a very strong baremetal community, have not seen its equal outside the avr folks. The beaglebone family is spotty. but based on your questions I dont think you are ready for any of these steps, you need to work your way up to this... – old_timer Apr 18 '18 at 00:41
  • If you don't need IO pins, what is the point of having a processor? You must have some IO for it to do anything useful. – Colin Apr 18 '18 at 08:41

2 Answers2

2

By Cortex-M series, I suppose you have experience with M0 and M3. Right?

If you plan on using A-Series, you should know that they are more designed to run operating systems (than M-Series). (For example they have virtual memory management units...) That's why you may not find much bare-metal programming guides with these processors.

Also, these devices don't usually have on-board ROMs. So, you don't have an embedded flash... Therefore, you basically use an SD-Card or eMMC to boot them.

You may use Linux (Easier for you but won't be real-time), or an RTOS (also easier). If that doesn't suit you, you may use "UBoot" from SD-Card or eMMC and do a couple non-trivial steps (dependent on architecture) to run your bare-metal software (which is loaded from SD-Card or eMMC).

I suggest you buy a beagle bone and start from there.

  • 1
    It is not the answer as OP did not ask any questions. He just expressed his dreams. – 0___________ Apr 17 '18 at 21:08
  • 1
    Here is my brief requirement. Currently I'm using LPC4357(Cortex M4 and M0) to capture images from a 5MP omnivision camera and send it through GPRS to the server. Now i want to send the some portion of the picture(5%) which will be selected by some image proccesing algorithm. i rewritten a python algorthm in C and imported it to my application. Since the complexity of algorbm is high it is further slowing down my application. The reason i want to use bare program without os is, I want to avoid boot up time required by linux. I can implement camera and usb drivers on my own. – user9268852 Apr 18 '18 at 15:06
  • It's not trivial, but for beagle bone, have a look at this. https://stackoverflow.com/questions/6870712/beagleboard-bare-metal-programming –  Apr 18 '18 at 15:40
  • Raspbery Pi also has a lot of bare metal programming guides. You can check one of those. E.g. http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal-programming-in-cpt1/ –  Apr 18 '18 at 15:41
  • I don't have both of those hardware available for me at the moment, so I can't be of further help. However, you can do bare metal in both of them, albeit it's not trivial. (I suggest using raspberry pi for visual processing, according to my and my colleagues experiences.) –  Apr 18 '18 at 15:43
0

You can still use Cortex-A for normal bare metal application adn with this way you will have something similair to what to what you had with application running on cortex-m However it really depends from what you want:

  • if you want to understand how cortex-a is working or you are bringing up a custom platform which is not that stable so bare metal coding is your answer and with it you will be able learn a lot bout cortex-a functionality
  • If you want to use Cortex-A from user point of view so you need to compile your linux kernel for your cortex-a based board and start using developing on top of your running kernel
dhokar.w
  • 386
  • 3
  • 6