⑴ 學習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****/