上一页 1 2 3 4 5 6 ··· 14 下一页
摘要: 1)首先,创建一个.c文件,其大体内容如下: 2 #include <Python.h> 99 char * extract(char * path) //想要调用的函数100 {112 char * Q = (char * )malloc(3*sizeof(char)); 。 。 。149 ret 阅读全文
posted @ 2016-03-19 23:19 DChipNau 阅读(2981) 评论(0) 推荐(0) 编辑
摘要: Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现 了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设 阅读全文
posted @ 2016-03-09 11:15 DChipNau 阅读(2875) 评论(0) 推荐(0) 编辑
摘要: 分两阶段,第一阶段主要用汇编完成,第二阶段主要用c完成。个人觉得两个阶段的分工并没有什么明显的要求,很多硬件的初始化可以放到第一阶段也可以放到第二阶段。只不过有一些复杂工作用汇编比较麻烦。 一般来说第一阶段工作:1. 硬件设备初始化。2. 为加载bootloader的第二阶段代码准备RAM空间。3. 复制bootloader的第二阶段代码到RAM空间中。4. 设置好栈。5. 跳转到第二阶段代码... 阅读全文
posted @ 2016-03-08 21:44 DChipNau 阅读(252) 评论(0) 推荐(0) 编辑
摘要: Ldr和bl在启动程序中,都是可以负责pc跳转的指令。 1)bl是地址无关指令,和什么地址无关呢?和当前的运行地址无关,链接器脚本中标明了一个运行地址,但是arm中的代码实际是从地址0开始运行的。这个时候实际的地址和运行地址是不符的,如果想让程序正常的运行,就得使用地址无关指令。比如在完成将程序复制到内存之前想要跳转到一个函数里,就得使用bl,因为bl跳转依靠的是相对地址,和运行地址无关,所以能完... 阅读全文
posted @ 2016-03-08 21:42 DChipNau 阅读(1022) 评论(0) 推荐(0) 编辑
摘要: 时钟两种能够提供时钟的方式:1) 晶振2) PLL(也就是锁相环):通用PLL需啊一个晶振,和对晶体特定频率分频或倍频的锁相环电路。 学习ARM9时钟的四步:1) 晶振:12MHZ2) 有多少个PLL:两个,MPLL和UPLL3) PLL产生了哪些时钟:MPLL:FCLK HCLK PCLKUPLL:UCLK4) 时钟都用来做什么了:FCLK:用于CPU核。HCLK:用于AHB总线设备,如cp... 阅读全文
posted @ 2016-03-08 21:41 DChipNau 阅读(1083) 评论(0) 推荐(0) 编辑
摘要: GPIO 习惯了stm32的GPIO,发现高端处理器arm在这方面反而简单了。 ARM9控制GPIO只有三种寄存器。 GPxCON:配置引脚功能,GPACON用一位控制一个GPIO,分别是0为输出引脚,1为输入引脚。GPBCON---GPH/JCON 则用两位控制一个引脚,分别是00表示输入,01表示输出,10表示特殊功能。 GPxDAT:当此引脚被设置为输入时,读此引脚可知相应引脚的电平状态... 阅读全文
posted @ 2016-03-08 21:40 DChipNau 阅读(1694) 评论(0) 推荐(0) 编辑
摘要: 这一快理解的非常浅:MMU 虚拟存储器对内存进行了逻辑上的扩充。比如一个32位的CPU系统,逻辑上的寻址可以达到4GB,但是如果直接对物理地址进行寻址,就要受到主存大小的限制。 在这种条件下,虚拟地址应运而生,每个应用程序的访存空间都可以达到4GB,当然这里用的是虚拟地址。Cpu发出虚拟地址之后会被转化为MVA(变化后的虚拟地址),MMU接收到MVA,将MVA转化为物理地址。 现在,先来看看... 阅读全文
posted @ 2016-03-08 21:39 DChipNau 阅读(754) 评论(0) 推荐(0) 编辑
摘要: Arm可以引出27根地址线,只能实现128MB的寻址,那么要如何实现1GB的寻址呢?答案就是使用nGCS片选线,nGCSx为低电平为选中相应的外接设备。一共八根片选线,也就是bank1,bank2…以此来实现1GB的寻址。 2440为32位,理论上的寻址范围为4GB,除了这1GB,其他的没有使用。2440的寄存器范围都处于0x48000000-0x5fffffff之间。 下图是分别... 阅读全文
posted @ 2016-03-08 21:38 DChipNau 阅读(785) 评论(0) 推荐(0) 编辑
摘要: 上图中的cp15就是协处理器。 那么什么是协处理器呢?如下: Cp15的详细信息:系统控制协处理器,通过修改cp15的寄存器,可以修改MMU,cache,时钟模式等系统选项,从而完成系统控制。 CP15的寄存器要通过MRC和MCR指令来访问。来自为知笔记(Wiz) 阅读全文
posted @ 2016-03-08 21:37 DChipNau 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 好了,言归正传,裸机程序没有操作系统的支持,想要用c语言,就只能先使用汇编语言手动配置c语言需要的环境,听起来很高大上,其实需要做的很简单:指定堆栈指针的值就好。 那么完成这个简单的事情之前,先要明白c语言的栈的以下几个概念:1. 空栈和满栈:这两个概念不是说的栈是空的还是满的,空栈是指栈指针指向的是栈顶元素的下一个地址。满栈指的是栈顶指针指的是栈顶元素。 2. 升栈和降栈:升栈就是栈向上生长... 阅读全文
posted @ 2016-03-08 21:37 DChipNau 阅读(629) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 14 下一页