推荐阅读最新更新时间:2024-05-03 20:16
GNU ARM汇编--(十四)GNU ARM汇编下做任务调度
以前工作中用过arm7,没有MMU,也没有用任何OS.现在回忆当时的代码结构,我觉得可以叫无限循环的有限状态机.arm7不跑OS,就相当于单片机,单片机跑的肯定是无限死循环.有限状态机是因为整个代码要处理很多外部的事情,那就是大的循环里面来套小循环,以轮询的方式来检查外界的变化,然后系统作出变化,系统在有限的状态中切换. OS的一个标识就是支持多任务的并发.比方说linux,我们看起来是多个进程在同时运行,实际上还是cpu运行一下这个进程,再运行一下其他进程.这个就涉及到上下文切换以及进程调度的算法.当然我这里说的是单核的情况,如果是SMP的话,可能有些区别.暂时也没研究linux下的进程调度,但是通过自己写个最简单
[单片机]
ARM系列 STM32F103RCT6 开发
简单介绍STM32F1XX系列可以有RTOS ,实时操作系统,也可以直接当单片机用. 功能有adc,dac,bkp,can,cec,crc,dbgmcu,dma,exti,flash,fsmc,gpio,i2c,iwdg,pwr,rcc,rtc,sdio,spi,tim,usart,wwdg,misc 具体芯片的每个接口是什么功能,不同的板子差别不大,毕竟是要符合芯片规范的。 开发环境基本都是WINDOWS(unix-like gcc) , 开发工具有 MDK-ARM(keil), EWARM(IAR),HiTOP, GCC(RIDE),TrueSTUDIO.. 开发IDE中集成了startup文件,gcc也集成了的启动文件
[单片机]
ARM7-VxWorKs的网络化实时彩色分析虚拟仪器
特种光源、彩色显示等行业的基础是彩色的还原与传递,在光学计量领域属于光源的光度和色度计量范畴,色坐标和亮度因数是主要的参数之一。光度、色度测试系统的性能,在高清晰度数字电视的白场基准测试、高清晰度数字摄像机白平衡校准以及半导体光电二极管LED照明和全彩色显示的白场均匀性测试等领域发挥着基础性关键作用。 人眼的视觉可以感受380nm~780nto范围内的光信号,但对不同波长光的敏感程度不同。l924年国际照明委员会CIE公布了2。视场明视觉光谱光视效率函数V( )。仿真人眼亮度感受的光度探测器通常是由光电二极管PIN构成的,核心是利用滤色玻璃将PIN的光谱光视效率修正得与(V)尽可能地相似。人眼对色彩的感受来源于人眼视网膜上的3种
[测试测量]
利用ARM处理器LPC1112设计LED电子胸牌
引言 随着LED技术的空前繁荣,LED胸牌备受关注。LED胸牌也叫LED工作牌,是一款新颖的LED贴片点阵“名片”式显示屏,可以显示姓名、性别、工作部门等信息,还可以显示不同速度、不同动作方式的文本及预置图型。它可以吊挂在脖子上或者夹在衣服上,作为公共场所个人及企业身份的证明及宣传之用。LED胸牌既可以显示中文,也可以显示英文。对于那些需要显示的信息量不是很大,分辨率不是很高,制造成本较低的场合,使用小屏幕LED点阵显示器比较适用。电源大多采用锂电池,锂电池具有使用寿命长、能量较高、重量轻和高低温适应能力强的优点。 目前,大多数LED胸牌的点阵显示系统自带字库,显示效果主要靠硬件扫描来驱动,该方法比较简单,但是显示只能按照预先的硬
[单片机]
高通推出面向基于Arm的Windows 10 PC的全新骁龙开发套件
高通推出面向基于Arm的Windows 10 PC的全新骁龙开发套件, 加大对开发者的支持力度 高通技术公司和微软联合推出具有成本效益的开发套件,进一步加大对软件和应用开发者的支持 2021年5月24日,圣迭戈——高通技术公司今日宣布推出高通骁龙™开发套件,旨在面向骁龙计算平台日益增长的设备生态,加大针对独立软件开发商和应用开发者在应用测试和应用优化方面的支持力度。该开发套件是高通技术公司联合微软利用基于Arm的Windows 10系统打造的套件资源,让开发者可以低成本地对他们的解决方案进行认证和验证,从而确保其在搭载骁龙平台的Windows 10 PC上能够提供出色的用户体验,满足人们工作、学习和协作的需求。 高通
[家用电子]
ARM 中断函数定义
ARM的中断函数是在startup code中定义的,在CODE区分配中断向量表时,及将中断函数定义出了 ; Vector Table Mapped to Address 0 at Reset AREA RESET, DATA, READONLY EXPORT __Vectors __Vectors DCD __initial_sp ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NMI_Handler ; NMI Handler
[单片机]
Android ARM 汇编学习(一)
给自己挖了个坑,一切都得从 Hello World 开始。 hello.S .data msg: .ascii Hello, World!\n len = . - msg .text .globl _start _start: /* syscall write(int fd, const void *buf, size_t count) */ mov %r0, $1 /* fd - stdout */ ldr %r1, =msg /* buf - msg */ ldr %r2, =len /* count - len(msg) */ mov %r7, $4 /* write is syscall #4 */ swi $0
[单片机]
【ARM裸机】 - 重定位
1、 重定位的目的 对于2440上电后,分两种情况,从nor启动,直接从nor作为0地址,开始在nor中运行。从nand启动,拷贝前4K到片内SRAM中。当代码大于4K的时候,我们需要重定位代码到更大的SDRAM中去运行。从nor运行时,由于nor只可读而不可以修改nor中的内容,就会导致一些全局变量,在代码中无法修改,此时我们可以将全局变量重定位(指定链接地址)到SDRAM中,这样我就可以nor中运行,然后对全局变量进行修改。 总结来说:重定位就是代码的存储地址和运行地址不一致,我们需要把代码拷贝到运行地址处。可以重定位所有代码,也可以重定位数据段等。由于代码存在flash中,一般可在链接脚本中加入AT()来指
[单片机]