I need a little digital io for my project since cortex-m is not economical for me I need to know can i use Cortex-a to do some embedded jobs?
Hi sjdaliyan,
If you will not go into high-volume production and your application/project does not have crucial requirement for power consumption or board size, it's fine to use the Cortex-A especially if you already have a Cortex-A board.
The only benefits of cortex-m is having industrial interfaces like can and etc.
Several Cortex-A devices have "industrial interfaces like can and etc.". See Freescale (now part of NXP) i.MX, Texas Instruments Sitara, XILINX Zynq 7000, among others.
The advantage of using Cortex-M for your project is you can have it done with minimal processing capability, memory, and peripherals. This translates to lower power consumption and ease of board design and programming. For simple embedded projects you get excess features with Cortex-A devices. For example you may not need the MMU, DDR controller, external Flash controller, on-chip graphics processor, PCIe interface, SATA, etc. In embedded applications, Cortex-As are best considered in cases where GUI and OS like Linux and Android are needed.
Could i rewrite my X86 assembly programs for Arm?
Yes, you can (or have to) rewrite your x86 assembly programs if you need them in ARM.
The degree of burden in converting x86 assembly language programs to ARM depends on the complexity of your project. Most of the hurdles relate to the roots of these two processors. With x86 from an older era and having evolved from CISC and ARM being newer and RISC. Some of your concerns are:
x86
64-bit: RAX, RBX, RCX, RDX
32-bit: EAX, EBX, ECX, EDX
16-bit: AX, BX, CX, DX
8-bit: AH/AL, BH/BL, CH/CL, DH/DL
ARM
Other minor differences exist; for example, ARM can support four types of stack based on the combination of empty/full and ascending/descending properties.
If you will use your assembly language program along with C, note that the integer data type in x86 is 16-bit while in ARM it is 32-bit.
Regards,
Goodwin
I need realtime os,20-30 timers and fast external clock generating ,could i use Cortex-A?Main reason i want to do that is you can buy a fully assembled Cortex-A board for 5-10 bucks with more power than cortex-m.
20-30 timers are already quite numerous. Luckily, the number of timers that can be supported by a real-time OS might be limited only by the available resources in the processor. The processing speed imposed depends on the task associated with each timer. Cortex-As have the speed to satisfy your requirement, and, as you stated, you can get more processing power per cost on Cortex-As. Your next step is to evaluate the RTOS for your project.
Yep it does sound like a lot of timers and I guess external clocks too. So it really depends on how much they each have to do and how quickly, but also you'll have storage requirements for all the routines and their data. Are you hoping to use the controller as a low level sequencer for most operations rather than get signals back as each job is done? That's a common sort of job for Cortex M microprocessors but a Cortex A series gives you extra speed and size.