草庐IT

bluecove_arm

全部标签

ARM交叉编译工具链 gcc-arm-none-eabi

目录1,交叉编译工具链简介(1)命令规则(2)实例1、arm-none-eabi-gcc2、arm-none-linux-gnueabi-gcc3、arm-eabi-gcc4、armcc2,安装工具链3,gcc-arm-none-eabi语法说明1,arm-none-eabi-gcc编译(1)常用编译选项(2)使用范例gcc生成预编译文件gcc生成汇编文件gcc生成目标文件gcc生成可执行文件查询`.c`源文件的依赖关系2,arm-none-eabi-ld链接器(1)链接并生成elf文件和map文件3,arm-none-eabi-ar生成静态库(1)将多个`.o`目标文件生成一个`.a`库文件

ARM day7 day8 UART串口、PWM蜂鸣器、WDT看门狗、ADC数模转换

一、串口编程   1.看原理图      GPA1_0:RXD2      GPA1_1:TXD2   2.看芯片手册      1)对外设置(GPIO)         GPA1CON:0x11400020 3:0->0x2(RXD2) 7:4->0x2(TXD2)      2)对内设置(uart)         ULCON2:0x13820000 0x3         UCON2: 0x13820004 1:0->01(polling) 3:2->01(polling)         UTRSTAT2:0->1(readyread) 1->1(发送完成)         UBRDI

Visual Studio交叉编译ARM工程

1、环境准备1.1、软件安装在Windows10/Windows11系统上安装VisualStudio2022和装有Linux系统的虚拟机VMwareWorkstationPro。(这里以VisualStudio2022为例,也可以换成其它支持远程调试的工具版本如VisualStudio2019及更高的版本)注意:安装VisualStudio2022时一定要勾选上“使用C++的Linux和嵌入式开发”的工具集。虚拟机安装完成后,进行Linux系统的安装。注意:明确系统的cpu架构,是x86、x64、ARM还是ARM64,这在之后的VisualStudio中需要选择编译平台。1.2、Linux系

[ARM入门]ARM模式及其切换、异常

ARM技术特征ARM处理器有如下特点体积小、功耗低、成本低、性能高支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件大量使用寄存器,指令执行速度更快大多数数据操作都在寄存器中完成寻址方式灵活简单,执行效率高指令长度固定ARM的基本数据类型ARM采用的是32位架构,ARM的基本数据类型有以下三种Byte:字节,8bitHalfword:半字,16bit(半字必须与2字节边界对齐)word:字,32bit(字必须与4字节边界对齐)存储器可以看作是序号为0-2^32-1的线性字节阵列,每一个字节都有唯一的地址ARM处理器工作模式Cortex-A系列的ARM处理器工作模式

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第五天-ARM Linux编程之自动创建节点 (物联技术666)

链接:https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd=1688提取码:1688       驱动程序编写好后,还需要创建设备节点,有两种方式,一是通过mknod命令去手动创建,例如:mknod/dev/helloc2500,/dev/hello为设备节点名字,c代表字符设备,250和0代表它的主次设备号。二是使用udev或mdev来实现自动创建设备节点。使用mknod手动创建设备节点不够灵活,如果是动态分配的设备号怎么办,难道每次加载驱动后去查看/proc/devices文件中查看它的主设备号,要是产品发布时怎么办,显然不太现实利用ude

【ARM CoreLink 系列 8.1 -- SMMU 详细介绍-STE Entry 详细介绍 1】

请阅读【ARMCoreLink文章专栏导读】上篇文章:【ARMCoreLink系列8–SMMU详细介绍-上半部】文章目录ARMSMMUSTEENTRY1.1STEENTRYWORD[0]1.1.1S1ContexPtr1.1.2S1Fmt1.1.3Config1.1.4V(Valid)1.2STEENTRYWORD[1]1.2.1S1CDMax

【ARM AMBA AXI 入门 16 - AXI 写响应通道 BVALID | BREADY | BRESP 详细介绍】

请阅读【ARMAMBAAXI总线文章专栏导读】文章目录AXI写响应通道BVALIDBREADYBRESP举例BRESP[2:0]编码AXI写响应通道在ARMAMBAAXI协议中,写响应通道包括以下三个信号,用来完成写事务的确认和状态传递:BVALID这是一个从设备(Slave)发出的信号,表明与当前写事务相关的BRESP(写响应)信号是有效的。换句话说,当从设备已经处理了写请求,并且准备好了响应状态时,它会将BVALID信号置为高电平。BREADY这是一个主设备(Ma

从ARM V7汇编层分析 if else和swith 语句效率

1.前言    ifelse和swithcase是两种常用的分支选择结构,从C语言的角度来看,代码是顺序执行的,很难判断两者的效率孰高孰低。可以确定的是,swith语句只能处理整形变量,而ifelse语句可以处理更复杂的条件分支。当条件变量为单一的整形值的判断时,两者是可以互相替代的,如:voidjudge_var_ifelse(intvar){ret=-1;if(0==var){ret=1;}elseif(1==var){ret=6;}elseif(2==var){ret=3;}else{ret=2;}returnret;}voidjudge_var_switch(intvar){ret=-

FPGA:ila core clock has stopped. unable to arm ila

现象:    在调试JESD204B时,为了观察204B的输出信号,采用204B输出的时钟作为ILA的抓数时钟,结果提示ilacoreclockhasstopped.unabletoarmila分析:1.先确定204B的core时钟是否输出,将core时钟进行LED灯的驱动,LED正常闪动,这说明core时钟是出来了的。2.ILA用其他时钟进行抓数,能够正常抓数。3.core时钟输出加入BUFG,提示出错,因为JESD204B中已经加入BUFG了。解决:既然JESD204B直接输出的core时钟不能作为ILA的抓数时钟,直接添加一个clockwiz,core时钟作为输入,输出一个和他同频同向作

理论学习-ARM-内核

ARM内核函数的调用加载、存储计算中断异常线程的切换注意事项参考文献为了提高学习效率,我们要提前想好学习策略。首先,使用频率越高的知识点,越要首先学习。假使,我们学习了一个知识点,能覆盖工作中80%的工作量,那是不是很夸张的学习效率?!其次,有两种覆盖知识点,梳理知识点的策略。一种是将知识按体系划分,挨个学习,系统学习。具体而形象的学习样板就是教科书。第一章,第二章等等,挨个分支学习、梳理。如果我们要讲述应题的知识,就要按寄存器、计算机工作原理、汇编指令、内核架构分体系去挨个讲解。还有一种策略就是面对问题。比如,我们首先提出一个问题:“函数调用,从C语言到汇编,再到CPU内核,以及寄存器的工作