當前位置:首頁 » 編程語言 » 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****/