推荐阅读最新更新时间:2024-05-03 11:30
对51转ARM的新人的建议
简介:arm的汇编没必要去精通的,能够大概看懂就行了。我一般在调试的时候才需要看看。如果一个速度要求苛刻到需要你使用汇编的话,我认为可能你更需要的是转变思路,修改算法。比如使用查表代替计算等。我做了5年arm开发,完成了n个项目,至今没写过一句汇编。 下面我说说自己的经验: 我以前一直用的是51,不过一直是C51,对C已经有10多年的经验,汇编用的很少。后来因为项目需要转到了arm。一开始对arm什么都不懂,看了本《arm体系结构与编程》也是云里雾里的。但是也许是因为无知者无畏吧,我直接就在mdk中建立一个工程,添加了自带的启动文件,然后做了个main函数,里面一个死循环没有操作任何硬件,居然跑起来了。然后以此为基础,慢慢的开
[单片机]
ARM之汇编与C混合编程
于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,详细内容可以查看ADS1.2 Online Books ——Developer Guide的2.1节。这篇文档要讲的是 汇编代码中对C函数调用时如何进行参数的传递以及如何从C函数正确返回。 不同于x86的参数传递规则,ATPCS建议函数的形参不超过4个,如果形参个数少于或等于4,则形参由R0,R1,R2,R3四个寄存器进行传递;若形参个数大于4,大于4的部分必须通过堆栈进行传递。 ATPCS中个寄
[单片机]
车辆安全距离智能控制与自刹车系统
近几年全国道路交通事故中,追尾事故约占全部交通事故的1/10。随着社会经济的发展,私家车的增多,近年来道路交通拥堵现象十分严重。人们不能及时控制车速以及人操作反应时间的延迟是造成这些问题的主要原因。要解决这些问题,可以将行车手动驾驶变为自动驾驶,而要实现自动驾驶就必须实现车辆速度的精确测量。本项目首先改进了速度测量方式,用加速度传感器补偿传统霍尔传感器测速的误差,实现速度的精确测量,其次精确测量前后车距,通过自动控制算法,实现安全车距的智能控制。 1 系统总体设计 该模拟系统结构图如图1所示,通过速度测量模块和车距测量模块得到实时数据,将得到的数据送到stm32f单片机(stm32f单片机是一款基于ARM—CM3内
[单片机]
软银要改革,arm成牺牲品?4年前曾花320亿美元收购!
据国外媒体报道,知情人士透露,日本软银集团正在研究全部或部分出售英国芯片设计公司ARM股份,或者选择让ARM上市。四年前软银斥资320亿美元收购了ARM。这是软银有史以来最大的一笔收购,部分原因是为了将其业务扩展到物联网。 上述知情人士说,由高盛集团担任顾问的相关审查还处于初级阶段。目前尚不清楚金融界或业内对ARM的兴趣有多大,软银最终也可能会选择不采取任何行动。 软银首席执行官孙正义于2016年7月在日本东京发表讲话 就在不到一周前,Arm宣布将其物联网服务业务转移到软银集团,以专注于其核心的半导体IP业务上。 目前Arm和软银均暂未回应置评请求。 软银此前曾表示,可能会在未来某个时候让ARM上市。不过
[嵌入式]
ARM汇编语言中的符号
在ARM汇编语言中,符号可代表地址、变量和数字常量。当符号代表地址时又被称为标号。标号包含变量、数字常量、标号和局部标号。 符号的命名规则如下: 符号由大小写字母、数字以及下划线组成。 局部标号以数字开头,其他符号都不能以数字开头。 符号是区分大小写的。 符号中在其作用范围内必须惟一,即在其作用范围内不可有同名的符号。 程序中的符号不能与系统内部变量或者系统预定义的符号同名。 程序中的符号通常不要与指令助记符或者伪操作同名。 (1) 变量 在ARM汇编语言中,变量有数字变量、逻辑变量和串变量3种类型。变量的类型在程序中是不能改变的。数字变量的取值范围为数字常量的数字表达式所能表示的数值范围。关于
[单片机]
ARM的异常处理过程分析
近来翻了翻uC/OS-II官网给出来的ARM7-ARM9移植手册(AN-104),分析了在ARM中移植的问题,想想从来没有认真的学习过ARM的汇编,趁着这个机会复习复习吧。其实底层的东西才是创造力的心脏。 其中的移植代码中存在的很多问题比如中断的关闭和开启,任务级别的情景切换,中断到任务的情景切换都是我们在平时移植中讲到,我也不在此强调了。在官网中提供的移植过程中存在异常处理机制,这个本不是在移植过程中考虑的,但是文档中确实提供了一个比较好的处理方式。我在此对这一段时间的学习做一个总结。 首先需要了解ARM的异常处理机制,异常是每一种处理器都必须考虑的问题之一,关键在于如何让处理,返回地址在什么位置都是需要考虑的, ARM中支持7种
[单片机]
arm-linux 学习(1)点亮第一个led程序
1.学习Gpio原理图 led与开发板的接线图, 总结: nled1—– GPF4 nled2—– GPF5 nled4—– GPF6 2. 寄存器 这里用到两个寄存器,一个是端口控制寄存器:GPACON-GPJCON,还有一个寄存器是端口数据寄存器GPADAT-GPJDAT 这里可以看出端口控制寄存器的地址是:0x56000000 端口数据寄存器的地址是:0x56000004 所以我们只需要配置这两个寄存器对应的LED位就可以实现控制led的亮或者灭。 第一步:首先配置LED引脚为输出模式 直接依次配置好:0001 0101 0000 0000==0x1500 第二步:对应位置输出低电平 需要设置
[单片机]
中芯、ARM携手90纳米LL/G处理工艺,共谋SoC前沿设计
中芯国际集成电路制造有限公司和ARM公司共同宣布:中芯国际采用ARM Artisan物理IP系列产品中的ARM Metro低功耗/高密度产品和Advantage高性能产品,用于90纳米LL(低渗漏)和G(主流)处理工艺。该协议通过在ARM网站免费下载的方式进一步增进了两家公司在推动前沿设计和制造方案方面的协作和承诺。 中芯国际设计服务副总裁Paul Ouyang表示:“同ARM的继续合作进一步加强了我们对客户的承诺:提供包括ARM高质量的、经芯片验证的物理IP在内的全面的制造发展蓝图。通过和ARM的合作,我们可以向90纳米工艺的客户提供ARM Metro和Advantage产品,帮助他们缩短设计时间、降低风险并加快产品上市速度。
[焦点新闻]