
网易博客搬迁之嵌入式方面
xiebingsuccess
这个作者很懒,什么都没留下…
展开
-
c、c++混合调用情况
在c++中调用c函数时要用extern "C"编译转换,如果忘记了就会出现编译时通过,链接时通不过的情况。由于 C 在 C++之前出现,之后的C++自然的兼容了C, 在 C++ 中调用 C 是在 C++ 标准中有相关标准支持的。但是,C 没有提供这个 后向兼容性, 不能直接调用 C++ 。 所以,解决的 办法就是, 在...转载 2019-06-13 13:37:30 · 341 阅读 · 0 评论 -
VxWorks下MPC860的中断处理机制及其应用
嵌入式实时操作系统VxWorks提供的中断处理机制中断延迟小,应用编程方便。MPC860是目前在网络与通信领域应用非常广泛的一款微处理器芯片。论文详细分析了VxWorks及MPC860的中断处理机制,阐述了中断处理应用编程的过程,并给出了应用实例。 1 引言 中断是外部事件通知操作系统的最常用手段。中断处理机制是计算机多任务环境运行的基础,是系统实时性的保证[1]。 ...转载 2019-06-13 13:24:25 · 408 阅读 · 0 评论 -
嵌入式学习指南(必备) (转载)
近些年来,嵌入式系统的发展在国内可谓如火如荼,很多公司都急需嵌入式系统方面的开发人员。然而,在高校中,嵌入式系统的教学却较为滞后,很多高年级的本科生和刚入学的研究生都苦于不知从何学起。在本文中,笔者将根据自己的嵌入式系统开发和教学经验,简要介绍嵌入式系统的学习方法,力求能帮助初学者找到一条入门之路。什么是嵌入式系统?学习嵌入式系统,首...转载 2019-06-13 11:55:43 · 1612 阅读 · 0 评论 -
MIPS,PowerPC和ARM访问I/O方式的比较
MIPS:由于MIPS的地址空间映射机制比较特殊,kernel在访问kseg0和kseg1段时,根本不需要经过MMU,虚拟地址直接减去一个偏移就是物理地址(虽说PowerPC和ARM看起来也是虚拟地址减一个偏移,但是实际上都是经过TLB的)。MIPS处理器一般把外设映射到虚拟地址0xA0000000-0xBFFFFFFF之间的512MB地址空间中,而且不通过Cache。所以只要知道外设的物理地址...原创 2019-06-13 11:42:17 · 411 阅读 · 0 评论 -
ARM920T的MMU与Cache
ARM920T的MMU与Cache目录 虚拟地址和物理地址的概念 虚拟内存管理 ARM920T的CP15协处理器 MMU Cache 操作MMU和Cache的内核启动代码 参考资料 索引虚拟地址和物理地址的概念 CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果C...原创 2019-03-26 17:04:45 · 480 阅读 · 0 评论 -
ARM汇编伪指令介绍
在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。在 ARM 的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令以及其他伪...原创 2019-03-26 17:03:00 · 5156 阅读 · 0 评论 -
LPC1114启动代码分析
启动代码是芯片复位后进入C语言的main()函数前执行的一段代码,主要为运行C语言程序提供基本运行环境。启动代码作用一般是:1)堆和栈的初始化;2)向量表定义;3)地址重映射及中断向量表的转移;4)设置系统时钟频率;5)中断寄存器的初始化;6)进入C应用程序。 启动代码文件:startup.s,startup.s包含异常向量表和系统初始化代码,保存C语言使用的堆和栈的开始位置...原创 2019-03-26 17:01:20 · 1271 阅读 · 0 评论 -
关于PIC单片机SLEEP指令
之前一直没有真正理解sleep指令,最近在做智能水表的产品的时候,用了一款8位的单片机PIC16F690,当看到程序中的sleep指令时以为执行后cpu还会工作,导致一些认识上的错误,在网上搜索了一下,找到了一篇关于sleep的详细说明文章,现收集下来以便以后查询!在执行SLEEP指令后进入睡眠省电模式。进入SLEEP模式后,主振荡停止,如果看门狗在烧写时打开了,看门狗定时器将...原创 2019-03-26 16:58:26 · 3411 阅读 · 0 评论 -
HEX文件和BIN文件的区别及HEX的代码转换
HEX文件和BIN文件是我们经常碰到的2种文件格式。下面简单介绍一下这2种文件格式的区别:1 -HEX文件是包括地址信息的,而BIN文件格式只包括了数据本身。在烧写或下载HEX文件的时候,一般都不需要用户指定地址,因为HEX文件内部的信息已经包括了地址。而烧写BIN文件的时候,用户是一定需要指定地址信息的。2 -BIN文件格式对二进制文件而言,其实没有”格式”。文件只是包括了纯粹的二进制...原创 2019-03-26 16:57:19 · 5324 阅读 · 1 评论 -
ARM汇编伪指令介绍
在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,是汇编程序所提供的帮助汇编器进行汇编的指令,并非单片机指令的一部分,因此伪指令不占用存储空间,它只是协助程序的汇编工作。这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命...原创 2019-03-26 16:55:33 · 2221 阅读 · 0 评论 -
时钟周期、机器周期、指令周期的概念及三者之间的关系;定时器及计数器
时钟周期时钟周期也称为振荡周期,定义为时钟脉冲的倒数(可以这样来理解,时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1/12 us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采用4MHZ的时钟频率,则时钟周期为250ns。由于时钟脉冲是计算机的基本工作脉冲...原创 2019-03-26 16:54:15 · 65028 阅读 · 11 评论 -
ARM 学习笔记整理(一)
ARM 学习笔记整理,主要用于将来的研究开发参考。一、ARM体系结构的版本 处理器的体系结构就是其使用的指令集,而通常我们说的Soc结构的处理器可以理解为一个实现机器指令集的硬件内核,在这个内核周围集成各种功能模块,比如:图像处理、通信处理等模块,然后将这些全部封装在一起,并将各个功能模块和内核通过引脚从芯片封装中引出来供人们使用。我的理解是Soc结构基本上是内核+通信+人机...原创 2019-03-26 16:52:11 · 7729 阅读 · 7 评论 -
ARM 学习笔记整理(二)
六、中断体系结构 上图为S3C2440 ARM处理的框图,从上图我们可以看到ARM920T是实现ARMv4T指令集的内核,而下面的功能模块是各个厂家基于这个内核设计的,各个功能模块的寄存器通过地址映射到ARM920T的地址空间中(比如我们在芯片手册中看到的各种控制器的寄存器地址),并通过AMBA总线和内核模块进行通信,比如中断控制器,nand flash控制器等。这个框图为...原创 2019-03-26 16:48:26 · 598 阅读 · 0 评论 -
ARM 学习笔记整理(三)
七、S3C2410/S3C2440时钟体系结构通过对S3C2440时间体系结构的学习,我们可以知道在一个ARM CPU中存在多种时钟源,这些时钟源根据各个模块对时钟的要求分别用于内核、高速设置、低速设备、独立的USB设备等,而这些时钟源的产生可以通过外部晶振在内部PLL电路、预分频电路、分频电路的作用下产生。同时从上电到得到稳定的时钟是需要一个过程的,如上图...原创 2019-03-26 16:46:18 · 564 阅读 · 2 评论 -
ARM学习笔记整理(四)-移植U-Boot(一)
移植U-Boot顶层Makefile的主要任务就是组织整个u-boot工程的编译,概括可以分为一下几个步骤:1、首先通过执行make *_config传入$(@:_config=), ARCH, CPU, BOARD, VENDOR, SOC参数(一共六个参数但不一定同时存在),给mkconfig。2、mkconfig接...原创 2019-03-21 17:12:13 · 633 阅读 · 0 评论 -
ARM学习笔记整理(五)
最近在使用ADS1.2调试S3C2440的时候遇到下面的问题:1、在启动AXD后遇到 DBT Warning 00049: Image probably in wrong byte sex 这样的错误,经过多次试验,发现时JLink没有配置好的原因:CPU的Endian应该配置为Little endian,如下:经过这样的配置后关闭AXD,再重新打开AXD后在加载完imag...原创 2019-03-21 17:10:31 · 509 阅读 · 0 评论 -
ARM学习笔记整理(四)-移植U-Boot(二)
正常编译uboot的过程是,在make XXXX_config配置你的成你的板子之后,直接去make,就可以去编译出最后你需要的u-boot.bin了。此处,就是分析,在make之后,最后boot是如何生成的,去分析这个过程。$(obj)u-boot: depend version $(SUBDIRS) $(OBJS) $(LIBS) $(LDSCRIPT)UNDEF_SYM=`$(OBJ...原创 2019-03-21 17:08:38 · 546 阅读 · 0 评论 -
JTAG各类接口针脚定义及含义
TAG各类接口针脚定义及含义JTAG有10pin的、14pin的和20pin的,尽管引脚数和引脚的排列顺序不同,但是其中有一些引脚是一样的,各个引脚的定义如下。一、引脚定义Test Clock Input (TCK) -----强制要求1TCK在IEEE1149.1标准里是强制要求的。TCK为TAP的操作提供了一个独立的、基本的时钟信号,TAP的所有操作都是通过这个时钟...原创 2019-03-21 17:06:20 · 48472 阅读 · 0 评论