ARM
文章平均质量分 79
shevsten
这个作者很懒,什么都没留下…
展开
-
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(1)-启动代码(cstartup.s)分析
手上有块ZLG的SMARTARM2200(LPC2220)的板子,其中的例子都是基于ADS的,想都移植到IAR上去,同时好好研究下IAR,ARM,uCOSII。我用的IAR版本是IAR EWARM5.3.从Micrium网站上下了uCOSII LPC2148的例子作为模板,修改好的工程可以从http://download.csdn.net/source/1485629上得到。这个工程只含有uCOS原创 2009-08-21 14:04:00 · 3028 阅读 · 0 评论 -
ARM几条汇编指令的比较
从网上找到一些关于ARM伪指令的资料,现整理如下:1. LDRLDR R0, =0X3FF5000 ;伪指令,把0X3FF5000这个地址送给R0 LDR R0, 0XFF ; 把立即数0xff送给R0LDR R0, =&FF ; &相当于0X转载 2011-02-23 10:56:00 · 5092 阅读 · 0 评论 -
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(9)-uCFS的移植(SD卡驱动简析)
接下来就是实现文件系统,uCFS在SD卡上的移植.我用的还是1.34.01版本,网上到处都是.不过更高版本的很难找到,谁有的愿与我分享会非常感谢.SMARTARM2200上SD卡通过SPI与处理器通信,另外3根IO用来控制供电,插入检测,写保护检测.SD驱动代码从ZLG的工程中获得用来移植到IAR上.移植好的工程请见http://download.csdn.net/source/1796291大部原创 2009-10-27 13:20:00 · 1599 阅读 · 0 评论 -
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(8)-LwIP 1.2的移植(RTL8019AS驱动2)
上一篇讲的一些函数都实现在RTL8019.c中,在ethernetif.c中实现了low_level_input和low_level_output,这两个函数是实现LwIP接收发送数据报的接口,这块驱动代码主要来源于网络,我做了部分修改,如output发送部分更详细的信息可以参考我上传的工程http://download.csdn.net/source/16612781.low_level_i原创 2009-09-09 13:36:00 · 1342 阅读 · 2 评论 -
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(7)-LwIP 1.2的移植(RTL8019AS驱动1)
实现LwIP与uCOSII的操作系统模拟层后,剩下重要的一部分就是网卡驱动了.SMARTARM2200用的网卡芯片是RTL8019AS.RTL8019AS.有3种工作方式:第一种为跳线方式,网卡的i/o和中断由跳线决定第二种为即插即用方式,由软件进行自动配置plug and play第三种为免跳线方式,网卡的i/o和中断由外接的93c46里的内容决定。SMARTARM2200使用第一种方式即跳线方原创 2009-09-02 15:49:00 · 1503 阅读 · 0 评论 -
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(6)-LwIP 1.2的移植(uCOSII部分)
常见的嵌入式TCPIP协议栈有LwIP,uIP,uC/TCPIP,TinyTcp等,相对来说LwIP功能较uIP(uIP更多用在8位51上),TinyTCP强点,但代码量小于uC-TCPIP,之前也尝试过移植uC-TCPIP,不过一直有点问题,当然uC-TCPIP还不是免费的.加上网上关于LwIP的资料也比较多.1.LwIP简介LwIP是瑞士计算机科学院(Swedish Institute of原创 2009-09-01 11:53:00 · 1981 阅读 · 0 评论 -
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(5)-ZLG-TCPIP的移植
板子自带的TCPIP协议栈ZLG-TCPIP的性能可以说一般,代码质量也不高,而且采用的是查询而不是中断方式.不过初学TCPIP研究一下相比其他复杂的协议栈还是容易点.这里就简单描述下ADS移植到IAR的过程,因为改动的代码并不多,就不详细介绍了.关于ZLG-TCPIP更深入的介绍可以参考《ARM嵌入式系统软件开发实例(一)》,之后会详细介绍LwIP的移植过程以及网卡驱动可以到http://dow原创 2009-08-31 10:25:00 · 1461 阅读 · 0 评论 -
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(4)-printf的串口实现
调试程序时需要输出串口信息到HyperTerminal,一开始没有找到IAR中实现printf从串口输出的方法,所以先自己写了一个print_string的函数.在ADS只需要实现一个_printf就可以实现printf从串口输出了.int _printf(const char *fmt, ...){ va_list args; int i; char printbuffer[原创 2009-08-28 10:55:00 · 1502 阅读 · 0 评论 -
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(3)-IAR Linker文件分析
为了能运行使用外部的RAM(SMARTARM2200提供的是8M BYTE的PSRAM),就需要修改linker文件,相当于ADS中的分散加载文件.以LPC2220_flash.icf为模板,创建一个LPC2220_XRAM.icf进行修改:/*###ICF### Section handled by ICF editor, dont touch! ****//*-Editor annotat原创 2009-08-27 13:59:00 · 1705 阅读 · 2 评论 -
SMARTARM2200 ADS工程在IAR EWARM 5.3上的移植(2)-uCOSII移植代码分析
uCOS移植代码主要位于工程路径下的/uCOS-II/Ports/ARM/Generic/IAR/os_cpu_a.asm(在uC-CPU下有个cpu_a.s,里面定义了OS_CPU_SR_Save和OS_CPU_SR_Restore,但实际上未用到,用到的是os_cpu_a.asmOS_CPU_SR_Save和OS_CPU_SR_Restore来进行开关中断)这里就os_cpu_a.asm里原创 2009-08-25 10:11:00 · 1503 阅读 · 0 评论 -
Cortex M3 Bit-banding简介
bit-band是Cortex-M3内核中针对某一段区域进行位和字映射的机制,对于位操作,如IO控制LED,相比传递的C语言的位操作,提供了很大的方便.bit-band 区域将存储器别名区(bit-band alias region)的一个字映射为 bit-band区的一个位. 处理器存储器映射包括两个 bit-banding 区域, 它们分别为 SRAM 和外设存储区域中的最低的 1MB.翻译 2012-06-19 14:30:05 · 8833 阅读 · 0 评论