
ARM
文章平均质量分 54
alexander1125
这个作者很懒,什么都没留下…
展开
-
NOR FLASH 与NAND FLASH 区别
<br />NOR的特点是芯片内执行(XIP, eXecute In Place),这样应用程序可以直接在flash闪存内运行,不必再把代码读到系统RAM中。<br /><br />NOR的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响了它的性能。<br /><br /> NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于flash的管理和需要特殊的系统接口。<br /><br /><br /><br />性能转载 2010-09-08 16:22:00 · 884 阅读 · 0 评论 -
keil mdk 中的Keep关键字的作用
看到项目中前人写的project中定义了一个汇编模块,但是不晓得是在哪里调用的(后来发现没有显示调用,是在链接脚本文件中指定的区域),但是在linker选项中对该模块使用了“-Keep”的修饰,本着刨根问题的精神,上网搜索了下对这方面的介绍,原来是防止编译器优化掉没有被显示调用的模块,下面摘自keil官方的解释:2.1.74. --keep=section_id转载 2013-04-20 21:47:40 · 4858 阅读 · 1 评论 -
STM32 ID
产品唯一的身份标识非常适合:● 用来作为序列号(例如USB字符序列号或者其他的终端应用)● 用来作为密码,在编写闪存时,将此唯一标识与软件加解密算法结合使用,提高代码在闪存存储器内的安全性。● 用来激活带安全机制的自举过程96位的产品唯一身份标识所提供的参考号码对任意一个STM32微控制器,在任何情况下都是唯一的。用户在何种情况下,都不能修改这个身份标识。这个96位的产品唯一身转载 2012-06-11 19:48:24 · 10561 阅读 · 1 评论 -
嵌入式中断通信控制的原子操作
关于通信:通信过程一般是原子的,但是通信时不应该关中断。以防止其他中断的丢失。为了保证通信过程是原子的,可以用mutex锁来确保。mutex锁的操作可以封中断。封中断的操作一定要短,一般只是用来修改全局变量用的。保护的是操作权,而不是操作本身。原创 2012-02-14 19:06:22 · 1179 阅读 · 0 评论 -
中断处理
如果某个中断被使能,必须有对应的中断处理例程 interrupt service procedure。 中断服务例程必须 CLEAR 中断使能位。要不然偶然出现的中断会挂死系统。原创 2012-03-10 23:53:16 · 973 阅读 · 0 评论 -
把程序从ROM中拷贝到RAM中运行模块的设计【ARM指令和Thumb指令的区分】
需要一个升级APP程序功能,但是又不想再Bootloader里面做,因为一开始没有设计BootLoader。 所以只能在APP添加一个Update模块了。 Update的逻辑流程如下: Update程序通过串口读取要升级的APP程序数据。原创 2012-02-19 21:46:07 · 5918 阅读 · 1 评论 -
Symbol __stdout multiply defined
Symbol multiply defined (by and ).A common example where this occurs:Symbol __stdout multiply defined (by retarget.o and stdio.o). means that there are two conflicting definitions of __stdou转载 2012-01-03 21:48:39 · 8892 阅读 · 0 评论 -
Cortex-M3的PendSV中断以及uCOS系统一点思考
uCOS中OSStart函数 |OSStartHighRdy函数会重新设置PendSV中断的优先级,把该中断优先级设置为最低每次时钟中断时(一般为最高优先级),查看是否要进程切换。如果此时有中断嵌套则不进行进程切换,防止破坏进程的空间有些Moto的处理器支持中断处理函数使用指定的栈。对于Cortex-M3架构来说原创 2012-02-06 18:52:11 · 7449 阅读 · 0 评论 -
嵌入式开发:中断优先级的重要性
TI的LM3S1607,一开始中断优先级没有设置,采用默认值[所有优先级相同],则就是中断不可嵌套。 出现了UART通信有时会丢失数据的问题,一开始以为是硬件干扰导致的。。。。 UART的接收缓冲队列FIFO长度设置为1,即接收到字符后就触发中断。因为外部通信命令一般为多个字节连续发,所以如果UART中断来不及处理,很可能原创 2012-01-16 00:53:11 · 1983 阅读 · 0 评论 -
GPIO口模拟SPI
对于如何操作GPIO来模拟SPI的过程是简单的,不赘述了。代码如下。 void _spi_tx(int8u data_tx){int8u i;//发送一个数据for(i=0;i{//改变数据位(准备数据发送)if((data_tx_spi_tx_pin_up();else_spi_tx_pin_down();//下降沿(数据将被发送)原创 2011-12-10 16:41:52 · 4223 阅读 · 0 评论 -
又一个碉堡的BUG
flash操作导致系统宕机。。。奇哉怪哉。。。。 本以为又是clock的问题,遂将system clock换成osc clock,依旧宕机。 watchdog重启!!!第六感告诉哥,一定是哪里访问出错进入interrupt死循环。。。(最有可能的就是flash address 出错,导致bus fault...) 寄出杀手锏,重定位了bu原创 2011-10-26 22:28:18 · 861 阅读 · 0 评论 -
又是一个坑爹的BUG
为了追查一个串口命令解析模块的BUG。为了验证初始串口收到的字符没有问题,我在Uart_Int_Handler中加入了打印信息。命令开始接收和结束接收的时候加入printf。 奇怪的事情发生了。第一条命令总是接收不全了。但是第二条命令可以接收完整。原创 2011-08-15 22:19:18 · 1280 阅读 · 0 评论 -
ARM CORTEX-3指令小结
R0-R12 通用寄存器,thumb模式一般只能使用R0-R7 R13为栈指针寄存器(MSP,PSP) R14为连接寄存器LR(用来存储程序返回地址) R15为程序计数器PC(下一条运行指令地址) 特殊功能寄存器xPSR(process status register)程序状态寄存器 B Label 跳转到Label代表的地址B原创 2011-06-23 23:54:00 · 1478 阅读 · 0 评论 -
创建LINUX文件系统
<br /> <br />dd if=/dev/zero of=./initrd bs=1024 count=4096<br /> <br />/sbin/losetup /dev/loop0 ./initrd<br />./mkfs.minix /dev/loop0<br /> <br />mkdir ./rootfs<br />mount /dev/loop0 ./rootfs<br />rm -rf ./rootfs/lost+found<br />tar -jxf rootfs.tar.bz2<br原创 2010-11-17 20:16:00 · 890 阅读 · 0 评论 -
VGA SVGA XVG XVGA
VGA一般指640*480的分辨率,VGA摄像头就是30万像素的摄像头。SQCIF=12*96 QCIF=176*144 CIF=352*288 QVGA=320*240 VGA=640*480 SVGA=800*600 WSVGA=1024*600XGA=1024*768 XVGA=1280*960 UXGA=1600*1200·VGA的英文全称是Video Graphic Array,即显示绘图阵列。VGA支持在640 X 480的较高分辨率下同时显示16种色彩或256种灰度,同时在320 X 240分转载 2010-09-30 11:13:00 · 7499 阅读 · 0 评论 -
TFT STN液晶屏区别
2.什么是TFT? TFT(ThinFilmTransistor)是指薄膜晶体管,意即每个液晶像素点都是由集成在像素点后面的薄膜晶体管来驱动,从而可以做到高速度、高亮度、高对比度显示屏幕信息,是目前最好的LCD彩色显示设备之一,其效果接近CRT显示器,是现在笔记本电脑和台式机上的主流显示设备。TFT的每个像素点都是由集成在自身上的TFT来控制,是有源像素点。因此,不但速度可以极大提高,而且对比度和亮度也大大提高了,同时分辨率也达到了很高水平。 3.什么是CSTN? 所谓CSTN屏幕是指高亮度STN屏幕,CS原创 2010-09-26 08:46:00 · 4098 阅读 · 0 评论 -
颜色查找表
<br />彩色查找表。。。在帧缓存与显示器的数模转换器之间增加一个查色表,对显示的颜色进行索引<br /> 这样,在帧缓存单元的位数不增加的情况下,具有大范围内挑选颜色的能力。<br />彩色查找表是一个一维线形表,其每一项内容对应一种颜色。此时帧缓存中的每个单元存储的不再是颜色值,而是对应于某一像素颜色的地址。彩色表的长度由帧缓存每个存储单元的位数决定。这确定一幅画面能同时显示的颜色种类数。彩色表的元素位长由帧缓存每个存储单元的基色数决定。这决定显示器可选择显示的颜色种类数转载 2010-09-25 15:24:00 · 6998 阅读 · 0 评论 -
4191AGG调试的BUG记录
1. 无法控制电机: 驱动和电机参数是对的。但是忘了VD时序被反转了。 导致原来的高电平通信必须变成低电平通信。 要不然因为通信时间过短导致电机不可控。2. 无法与CXD4191AGG通信: SPI驱动是对的。但是单片机的TX和RX引脚短路。通过示波器发现TX和RX的波形一样,且非常怪异,与程序要发送的数据不一样。原创 2013-08-23 22:42:35 · 1928 阅读 · 1 评论