当前位置:首页 » 编程语言 » arm是用的c语言嘛
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

arm是用的c语言嘛

发布时间: 2022-04-20 11:33:32

⑴ 学习ARM要会什么语言。汇编还是c语言

学arm要汇编,C更重要,我就是正在培训嵌入式,今天就做了个跑马灯程序烧写进开发办,ARM程序有汇编调用C语言,C语言调用汇编,C语言内嵌汇编,所以学习ARM要汇编,也要C语言

⑵ arm使用的c语言和单片机所使用的c语言有什么区别

单片机的C语言叫C51,是由C语言继承而来的。一般使用C51编译器。
arm中使用的是标准C语言。一般使用gcc编译器。

⑶ ARM的C语言

学好标准C不就得了,其实你学透了标准C,arm上的那些你也是可以理解的。以前那些书上在ARM上用的多的东西,因为在PC机上很少用,就一笔带过了。

像IO口定义那,我们从手册知道寄存器的地址。如
#define GPBCON (*(volatile unsigned long *)0x56000010)

因为0x56000010是个立即数,0x56000010=XXXX;这样是错的。所以要对他进行转换。

如果函数指针你也不理解的话,建议你把C专家编程看一下。
函数指针在linux里用的很多。

⑷ arm汇编跟汇编、C语言的区别

不一样,汇编主要是要了解CPU指令及用法。
我们常说的是PC机的x86汇编,指令是x86的复杂指令集。
arm汇编是arm的精简指令集,比x86容易学,程序格式倒是和x86汇编差不多。你下载一份arm的手册就可以了解了。
C语言ARM的和x86的差不多,除了对硬件寄存器操作不同,其它语法和流程都一样。

回答补充:

arm汇编程序每一行是指定arm core执行一条指令,每条指令都是硬件相关。

LDR R3, #1 ;用LDR指令将数值1放入R3寄存器准备参与运算

C语言与arm指令无关,只与逻辑运算有关,指定硬件地址的操作才与硬件相关;如果用arm编译器来编译,每行可能编译出1到多条arm指令。

i++; //变量 i 递增1
等效于
LDR R3,#1 ;用LDR指令将数值1放入R3寄存器准备参与运算
ADD R2, R2, R3 ;用ADD指令将R2、R3寄存器里的数值相加后放回R2寄存器
以上等效汇编的R2、R3寄存器只是为了举例,C语言不像汇编,不需要由程序员指定用哪个寄存器参与运算,编译器编译时会根据程序结构自动判断选择。

强调mcuos有错,“c语言被编译器编译的时候会最终解释为汇编语言的”,无论是c语言还是汇编语言,编译器编译后的结果是机器执行码,很多人因为汇编语言比较难懂及指令相关,所以以为它就是机器语言,其实它仍是人类设计的编写程序的语言,仍需要编译器编译成机器码才能执行,它只是比C语言更接近硬件而已。

⑸ ARM和DSP算是嵌入式的硬件还是软件方向编程用的是C语言吗

如你是从DSP芯片级的器件开始自己动手设计和装配成模块时这会是硬件的工作。如你购现成的嵌入式模块或用你自己 装配好的模块进行编程时就是软件的工作呢。这时你可用相关的C语言进行编程。如你想用的更好那最好也学会它的汇编级语言。

⑹ ARM的编程是用什么编程语言

汇编语言和C语言。

⑺ ARM编程只用C语言不要汇编可以吗

ARM编程必须用C语言的,用汇编实在是太难写了,在网上可以找到支持ARM的操作系统代码的,完成是C语言写,这不可能用汇编来写操作系统的。

⑻ arm编程与C语言的编程区别和方法

ARM公司卖的arm
cpu内核给许多公司,那些公司生产出众多的ARM处理器。ARM编程实际上指的是应用ARM公司自己出产的IDE(集成开发环境)所开发进行的编程,比如现在业界常用的ADS1.2,MDK3.5等等IDE。主要进行ARM汇编和与c混合编程。

ARM公司自己规定了一套ARM指令集,也规定了一套汇编指令集。当然,我们觉得汇编编程生产效率低下,不易编写大规模程序,那么我们就可以用高级语言,比如c语言,面向对象的语言在操作系统上运行。

⑼ 学arm要先学汇编语言还是C语言

我们正在学习arm编程,对这个比较有发言权
首先把C作为编程语言这个是主流,因为C比汇编好操作,写出的成语容易懂,而且将来移植很方便,毕竟嘛,各主流平台都有对C的标准库支持,linuxx下的hellowordl 源程序在windows平台下编译运行 也会是hello world 不会变成 hello linux

但是汇编也要懂,在平台开发这阶段,很多的时候用的是 C内嵌汇编,毕竟你想从某个寄存器里读取他的值,C肯定没法完成!所以你的中心放在 C的学习上,然后看看汇编,最起码能看得懂,一些汇编想要表现个什么 对吧!!!

⑽ ARM 单片机 C语言

/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
* File Name : stm32f10x_conf.h
* Author : MCD Application Team
* Date First Issued : 09/29/2006
* Description : Library configuration file.
********************************************************************************
* History:
* 04/02/2007: V0.2
* 02/05/2007: V0.1
* 09/29/2006: V0.01
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/

/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F10x_CONF_H
#define __STM32F10x_CONF_H

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_type.h"

/* Exported types ------------------------------------------------------------*/
/* Exported constants --------------------------------------------------------*/
/* Uncomment the line below to compile the library in DEBUG mode, this will expanse
the "assert" macro in the firmware library code (see "Exported macro" section below) */
//#define DEBUG

/* Comment the line below to disable the specific peripheral inclusion */
/************************************* ADC ************************************/
#define _ADC
#define _ADC1
#define _ADC2

/************************************* BKP ************************************/
#define _BKP

/************************************* CAN ************************************/
#define _CAN

/************************************* DMA ************************************/
#define _DMA
#define _DMA_Channel1
#define _DMA_Channel2
#define _DMA_Channel3
#define _DMA_Channel4
#define _DMA_Channel5
#define _DMA_Channel6
#define _DMA_Channel7

/************************************* EXTI ***********************************/
#define _EXTI

/************************************* FLASH and Option Bytes *****************/
/*#define _FLASH*/

/************************************* GPIO ***********************************/
#define _GPIO
#define _GPIOA
#define _GPIOB
#define _GPIOC
#define _GPIOD
#define _GPIOE
#define _AFIO

/************************************* I2C ************************************/
#define _I2C
#define _I2C1
#define _I2C2

/************************************* IWDG ***********************************/
#define _IWDG

/************************************* NVIC ***********************************/
#define _NVIC
#define _SCB

/************************************* PWR ************************************/
#define _PWR

/************************************* RCC ************************************/
#define _RCC

/************************************* RTC ************************************/
#define _RTC

/************************************* SPI ************************************/
#define _SPI
#define _SPI1
#define _SPI2

/************************************* SysTick ********************************/
#define _SysTick

/************************************* TIM1 ***********************************/
#define _TIM1

/************************************* TIM ************************************/
#define _TIM
#define _TIM2
#define _TIM3
#define _TIM4

/************************************* USART **********************************/
#define _USART
#define _USART1
#define _USART2
#define _USART3

/************************************* WWDG ***********************************/
#define _WWDG

/* In the following line adjust the value of External High Speed oscillator (HSE)
used in your application */
#define HSE_Value ((u32)8000000) /* Value of the External oscillator in Hz*/

/* Exported macro ------------------------------------------------------------*/
#undef assert
#ifdef DEBUG
/*******************************************************************************
* Macro Name : assert
* Description : The assert macro is used for function's parameters check.
* It is used only if the library is compiled in DEBUG mode.
* Input : - expr: If expr is false, it calls assert_failed function
* which reports the name of the source file and the source
* line number of the call that failed.
* If expr is true, it returns no value.
* Return : None
*******************************************************************************/
#define assert(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
/* Exported functions ------------------------------------------------------- */
void assert_failed(u8* file, u32 line);
#else
#define assert(expr) ((void)0)
#endif /* DEBUG */

#endif /* __STM32F10x_CONF_H */

/******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/