ARM基础知识
gooogleman
学海无涯,上下求索。
展开
-
cortex M3 系统svc 系统调用
STM32 SVCall一个特殊的中断:SVCall简述:一种由程序进行触发的中断,默认开启起源:SVC(系统服务调用,亦简称系统调用)多用于在操作系统之上的软件开发中。SVC 用于产生系统函数的调用请求。例如,操作系统不让用户程序直接访问硬件,而是通过提供一些系统服务函数,用户程序使用 SVC 发出对系统服务函数的呼叫请求,以这种方法调用它们来间接访问硬件。因此,当用户程序想要控制特...转载 2019-10-12 19:58:20 · 3863 阅读 · 3 评论 -
ADS 的程序入口是如何指定的?
刚才有人在论坛问:ADS 的程序入口是如何指定的?现在贴个图上来。哈哈 点了上面的按钮以后原创 2009-04-25 08:44:00 · 2052 阅读 · 0 评论 -
wince5+2440的睡眠和唤醒——转载
wince5+2440的睡眠和唤醒说明:网上转载,也没有说明作者是谁,如果作者看到我转载了,请说一声,我会把你的大名写上。不管任何方式的系统挂起,最终都会调用OEMPowerOff()函数来实现.OEMPowerOff()函数由OEM来完成,这个函数也许会位于 power.c或者off.c的文件中.OEMPowerOff()是OEM来实现的,代码和流程也许不同,但基本按照下面的方法来完成.转载 2009-03-26 16:01:00 · 3893 阅读 · 1 评论 -
2440 FCLK, HCLK, and PCLK
FCLK, HCLK, and PCLKFCLK is used by ARM920T.HCLK is used for AHB bus, which is used by the ARM920T, the memory controller, the interrupt controller, the LCD controller, the DMA and USB host block.PCLK原创 2009-03-25 11:38:00 · 3898 阅读 · 1 评论 -
ARM的一些重要术语解释(收集)
AMBA总线是一个多总线系统。规范定义了三种可以组合使用的不同类型的总线:AHB(Advanced High-performance Bus)、ASB(Advanced System Bus)和APB(Advanced Peripheral Bus)——先进外设总线 AHB主要用于高性能模块(如CPU、DMA和DSP等)之间的连接,作为SoC的片上系统总线,它包括以下一些特性:单个时钟边转载 2009-03-24 15:56:00 · 2782 阅读 · 0 评论 -
s3c2440(2410) USB HOST不稳定的原因及解决方法(转)
s3c2440(2410) USB HOST不稳定的原因及解决方法(转) 今天tpu拿出一块2440板子调试,发现尽管采取了种种措施,USBHOST总是会偶尔不工作.把UCLK通过CLKOUT0引出,用示波器查看,发现不工作的时候,UCLK根本就没有稳定下来.于是仔细思考,影响US转载 2009-03-25 09:52:00 · 2968 阅读 · 1 评论 -
ARM920T协处理器(CP15)指令表
作者:wogoyixikexie@gliet原创 2008-12-29 10:57:00 · 2506 阅读 · 0 评论 -
ARM协处理器CP15(设置MMU,cache等)学习
作者:wogoyixikexie@gliet 一直对协处理器CP15很恐惧,因为在网上基本上找不到中文的详细说明,现在找了一些ARM官方文档(ARM920T Technical Reference Manual)来看,准备对它做个了结。 协处理器CP15包含了如下寄存器。==================================================原创 2008-12-24 12:33:00 · 10286 阅读 · 1 评论 -
ARM920T的MMU与Cache ——转载
Cache是高性能CPU解决总线访问速度瓶颈的方法,然而它的使用却是需要权衡的,因为缓存本身的动作,如块拷贝和替换等,也是很消耗CPU时间的。MMU的重要性勿庸置疑,ARM920T(和ARM720T)集成了MMU是其最大的卖点;有了MMU,高级的操作系统(虚拟地址空间,平面地址,进程保护等)才得以实现。二者都挺复杂,并且在920T中又高度耦合,相互配合操作,所以需要结合起来研究。同时,二转载 2008-12-24 08:55:00 · 2228 阅读 · 0 评论 -
ARM异常、中断以及他们的向量表分析
作者:wogoyixikexie@gliet 以前,我一直很疑惑这个“ARM异常、中断以及他们的向量表”是怎么回事,他们到底是怎么实现的,没有想到今天偶然看到(ARM System Developers Guide: Designing and Optimizing System Software的ARM异常、中断以及他们的向量表的章节,豁然开朗。——ARM嵌入式系统开发:软件设计与优原创 2008-12-24 16:20:00 · 11275 阅读 · 3 评论 -
从启动内核函数void Launch(DWORD dwLaunchAddr)看汇编和C的函数参数传递
作者:wogoyixikexie@gliet void Launch(DWORD dwLaunchAddr)这个函数是在SMDK2440A/Src/Bootloader/Eboot/util.s(32)实现的 ;****************************************************************************** INCLUDE原创 2008-12-17 12:42:00 · 2199 阅读 · 0 评论 -
arm中r12(IP)的用途
arm中r12的用途第一篇博客。就写一个最近遇到的bug吧。算是为光秃秃的博客填点东西吧。近来在维护一个年久失修的程序, 包括应用,库文件以及一个linux device driver.很久以前程序是用arm-linux-gcc 3.4.3编译的。而最近当换用arm-linux-gcc 4.1.1进行编译的时候发现程序神奇转载 2008-12-16 11:51:00 · 21402 阅读 · 2 评论 -
arm汇编语言调用C函数之参数传递——转载
arm汇编语言调用C函数之参数传递来源: ChinaUnix博客 日期: 2008.06.28 17:30 (共有0条评论) 我要评论 对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure CallStandard),A转载 2008-12-17 11:07:00 · 2563 阅读 · 1 评论 -
wince在运行的时候是否可以修改CPU频率?
作者:wogoyixikexie@gliet 最近论坛出现了动态改变CPU频率的一个topichttp://topic.csdn.net/u/20081216/16/e14d9c98-db4c-4b7f-9c97-a5d0c7aa5ef5.html?seed=1144664978 这个意义重大,如果可以实现,那么这个功耗可以降下来。有机会可以试试。-----------原创 2008-12-17 09:02:00 · 2230 阅读 · 2 评论 -
Windows CE 休眠唤醒全面解析(基于2440平台) ——转载
Windows CE 休眠唤醒全面解析(基于2440平台)(1) Windows CE 休眠唤醒全面解析(基于2440平台) Windows CE 作为一个广泛应用于移动便携设备上的操作系统,提供了完善的电源管理的功能。其中,休眠唤醒便是一个重要的功能。那么,休眠唤醒是什么原理呢,这首先要从硬件说起。这里呢,我就拿用自己得最熟练的三星平台的2440 CPU为例来和大家探讨一下。首先看2转载 2009-02-23 10:33:00 · 3463 阅读 · 0 评论 -
为什么wince5.0 只能支持最大内存是512M?
在论坛里面有不少人问起wince5(wince6尚未看过)的最大支持内存是多少,听前人说最大是512M,刚才看了会Programming Windows CE 3rd 这本书的wince内存结构部分,讲的比较明白。 The address space above the 2-GB boundary, addresses 8000 0000 through FFFF FF原创 2009-05-18 11:37:00 · 4495 阅读 · 0 评论 -
裸奔程序为什么会跑飞?
经常在论坛里面,看到一些人说“程序跑飞了!”。以前我真不太理解这个词语,刚才看了个帖子,觉得有点收获,就写下来,造福you and me。 所谓“程序跑飞了”,就是程序找不到正确的地址去寻找应该执行的指令,这通常是在中断跳转,MMU设置相关。下面这个帖子就是这个原因。http://topic.csdn.net/u/20090517/14/4664821b-b0b5-4142-bbf7原创 2009-05-20 21:21:00 · 3828 阅读 · 1 评论 -
浅谈ARM裸板调试
转载自http://blog.csdn.net/nanjianhui/archive/2009/05/15/4189270.aspx 原创作者:ARM-WinCE 我所说的ARM裸板调试是指ARM的PCB板制作完后,贴片回来的板子,不但没有任何程序,上电都是第一次。之所以写一篇blog,是因为最近调试了一块ARM板,基于S3C6410的,但是我们把原来的M-DDR DRAM和Na转载 2009-05-26 10:47:00 · 3695 阅读 · 1 评论 -
S5pv210 LCD 驱动 时序相关(转)
第一次调试lcd驱动的话是不是对下面的结构有点陌生,不知道那些值是如何得来的,当然我就属于其中的一个点击(此处)折叠或打开static struct s3cfb_lcd lte480wv = { .width = 1024,//800, .height = 600,//480, .bpp = 24,//24,//32,转载 2012-12-09 14:32:23 · 2568 阅读 · 0 评论 -
2440 中断优先级问题(作者gooogleman@foxmail.com)
2440 中断优先级问题(作者gooogleman@foxmail.com)//-----------------------------------------------------------------------------------------------------------// 日期:2009年3月23日 10:49:43// 作者:gooogleman@f原创 2009-03-23 11:21:00 · 2612 阅读 · 0 评论 -
2440 定时器(PWM)学习(作者:gooogleman@foxmail.com)
2440 定时器(PWM)学习(作者:gooogleman@foxmail.com)FEATURE— Five 16-bit timers— Two 8-bit prescalers & Two 4-bit divider— Programmable duty control of output waveform (PWM)— Auto reload mode or one-s原创 2009-01-15 17:27:00 · 2876 阅读 · 2 评论 -
关于S5pv210的 APLL,MPLL,EPLL以及VPLL的介绍
在S5pv210的手册里面有PLL − Four on-chip PLLs, APLL/MPLL/EPLL/VPLL − APLL generates ARM core and MSYS clocks − MPLL generates a system bus clock and special clocks − EPLL generates special clock原创 2012-11-11 17:20:03 · 4961 阅读 · 0 评论 -
给wince驱动/应用初学者推荐的书籍
作者:gooogleman 邮箱:gooogleman@foxmail.com应用方向? C++,c#----------本人不做应用只知道用这两个语言用到,不敢推荐 -------也来补充一下。《PROGRAMMING MICROSOFT WINDOWS CE.NET》第三版英文原著Inside Windows CE - John Murray P原创 2008-11-10 14:55:00 · 8378 阅读 · 5 评论 -
再次解释ARM 流水线 比如add r0, pc, #g_oalAddressTable - (. + 8)的问题
// topic:再次解释ARM 流水线 比如add r0, pc, #g_oalAddressTable - (. + 8)的问题 // 作者:gooogleman // 邮箱:gooogleman@foxmail.com //网址:http://blog.csdn.net/gooogleman/article/details/765154原创 2012-06-11 10:52:22 · 8578 阅读 · 0 评论 -
cache原理学习(作者:gooogleman)
作者:wogoyixikexie@gliet cache是ARM最难理解,也是最具有闪光点的地方之一,现在是解决他的时候了。 对于这么经典的东西,我还是引用ARM工程师的书籍吧,免得误人子弟。cache以及write buffer的介绍 A cache is a small, fast array of memory placed be原创 2008-12-29 16:28:00 · 10216 阅读 · 3 评论 -
【讨论】初学者拿到2440、6410 等开发板应该怎么学习?
【讨论】初学者拿到2440、6410 等开发板应该怎么学习?原创 2011-04-27 09:38:00 · 7727 阅读 · 10 评论 -
关于高端ARM处理器选型的一些个人看法(作者:gooogleman)
关于高端ARM处理器选型的一些个人看法(作者:gooogleman)原创 2010-10-21 00:49:00 · 5310 阅读 · 12 评论 -
在裸奔2440时候遇到的GPIO郁闷问题(作者gooogleman)
在裸奔2440时候遇到的GPIO郁闷问题(作者gooogleman) //-------------------------------------------------------------------------------------------------// 作者:wogoyixikexie@gliet //论坛账号:goo原创 2009-09-29 16:10:00 · 2681 阅读 · 3 评论 -
翻译2440 CLOCK & POWER MANAGEMENT
7 CLOCK & POWER MANAGEMENT OVERVIEWThe Clock & Power management block consists of three parts: Clock control, USB control, and Power control.时钟和电源管理模块由三部分组成:时钟控制,USB控制和电源控制。 The Clock cont翻译 2009-08-31 12:46:00 · 2031 阅读 · 2 评论 -
S3c2410软件调试总结
S3c2410软件调试总结 7、8月份的时候自己用空余时间制作了一块S3c2410+Cyclone EP1C6的开发版,由于没有时间就一直扔在那里,最近空了下来,我用了3个星期的时间埋头对开发板对了全面的调试,我的工作重点是放在 bootloader、ucos-ii等相对比较简单的程序,借此来完成对硬件模块的测试以及对S3c2410的熟悉。 很高兴,现在各个模块已经全部打通,我个人自己写转载 2009-08-13 08:38:00 · 3800 阅读 · 3 评论 -
提高wince中断响应速度的一种方法(作者:wogoyixikexie@gliet)
//----------------------------------------------------------------------------------------------------------- // 作者:wogoyixikexie@gliet //论坛账号:gooogleman (经常在CSDN出没)// 版权:桂林电子科技大学一系科协wogoyixikex原创 2009-08-10 10:19:00 · 2831 阅读 · 9 评论 -
eboot中断向量问题
作者:wogoyixikexie@gliet(转载请注明) 前几天这个帖子http://topic.csdn.net/u/20090605/12/abd72d4e-260c-4e72-966f-298ed343ed3c.html搞的一头雾水,现在看懂了一些, 特写篇博客 我一直使用的是ADS 的bootloader (STEPLDR+eboot整合在一起了),对PB下的bootloader不是原创 2009-08-10 09:29:00 · 2780 阅读 · 2 评论 -
怪异ARM指令(%)
作者:wogoyixikexie@gliet这条ARM 汇编语句什么意思? mov r4, %0 查看宛城布衣的汇编手册原创 2008-12-02 15:59:00 · 1416 阅读 · 0 评论 -
S3C2410 && WinCE6.0的中断处理分析 (转载自博客园牛人we-hjb)
S3C2410 && WinCE6.0的中断处理分析 S3C2410的内核是ARM920T,所以,这里先介绍一下ARM920T的异常。ARM920T中有一个当前程序状态寄存器(CPSR),其中BIT6和BIT7分别控制FIQ和IRQ的使能与否。大家经常说的开中断和关中断,就是指的设置这两个BIT。 ARM体系的异常中断如下图所示:转载 2009-02-05 14:29:00 · 3807 阅读 · 0 评论 -
(亚嵌)ARM920T的MMU与Cache之虚拟地址和物理地址的概念
虚拟地址和物理地址的概念 http://www.akaedu.org/pages/news_detail.php?id=374&page=1 CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit,内存管理单元),或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到CPU芯片的外部地址引脚转载 2009-01-05 08:46:00 · 2614 阅读 · 0 评论 -
MMU相关指令学习(二)(主要是页表设置指令)
作者:wogoyixikexie@gliet 本来打算在《MMU相关指令学习(一)(主要是页表设置指令)》搞定MMU指令问题的,但是这个实在是太长太多,太复杂了,现在就新开一文,就地解决!——刚好是第一百篇原创,值得纪念。————————————————————————————————Assembly code ;——在OAL的startup.s有如下:;add r0原创 2009-01-04 14:37:00 · 3380 阅读 · 0 评论 -
(亚嵌)ARM920T的MMU与Cache之操作MMU和Cache的内核启动代码
操作MMU和Cache的内核启动代码 bootloader加载linux内核到内存并解压之后,Linux内核首先在汇编代码中读取CPU的基本信息,对CPU做一些基本设置,创建最简单的临时页表,然后开启MMU和Cache,启用虚拟内存管理(此后CPU核发出的地址都是虚拟地址),然后跳到C代码中完成其它初始化工作,比如创建完整的页表、初始化各种内核子系统、初始化硬件设备等。本节以Linux转载 2009-01-05 09:00:00 · 6212 阅读 · 0 评论 -
MMU代码分析(作者:wogoyixikexie@gliet)
MMU代码分析(作者:wogoyixikexie@gliet) ——以前我一直误以为MMU在OAL才开的,在bootloader是不开的,真是大错特错。这个也不怪我,因为有很多书都说在bootloader阶段是不开的。现在看看代码真是感慨万千。———————————————————————— 这两天,重新看了MMU和cache,对它有了一点了解,现在再把疑问放到论坛上来,希原创 2009-01-04 16:38:00 · 5339 阅读 · 0 评论 -
MMU相关指令学习(一)(主要是页表设置指令)
作者:wogoyixikexie@gliet————————————————————————————————————————————下面看看这张图,结合指令看看,不过我始终觉得这个图和程序描述的设置有很大差别。————————————————————————————————————————————————这里再来补充一下MMU的作用以及不使用MMU会造成什么后果。———原创 2009-01-03 23:43:00 · 5008 阅读 · 1 评论 -
add r0, pc, #OEMAddressTable-(.+8)指令引起的论坛讨论
作者:wogoyixikexie@gliet wangxin_801115在昨天发了个帖子,本来觉得很简单,没有想到引起了很大的关注。现在收集起来造福you and me。———————————————————————————————————————————————————add r0, pc, #OEMAddressTable-(.+8) ; (r0) = OEMAddres原创 2009-01-06 14:13:00 · 5831 阅读 · 0 评论