现在位置: 首页

什么是位置无关码(PIC)

2014年04月22日 基础知识  ⁄ 共 2310字 什么是位置无关码(PIC)已关闭评论 ⁄ 阅读 97 次
应用程序必须经过编译、汇编和链接后才变成可执行文件,在链接时,要对所有目标文件进行重定位(relocation),建立符号引用规则,同时为变量、函数等分配运行地址。当程序执行时,系统必须把代码加载到链接时所指定的地址空间,以保证程序在执行过程中对变量、函数等符号的正确引用,使程序正常运行。在具有操作系统的系统中,重定位过程由操作系统自动完成。  在设计Bootloader程序时,必须在裸机环境中进行,这时Bootloader...
阅读全文

ARM MMU工作原理剖析

2014年04月18日 裸机开发  ⁄ 共 8129字 ARM MMU工作原理剖析已关闭评论 ⁄ 阅读 422 次
一、MMU的产生       许多年以前,当人们还在使用DOS或是更古老的操作系统的时候,计算机的内存还非常小,一般都是以K为单位进行计算,相应的,当时的程序规模也不大,所以内存容量虽然小,但还是可以容纳当时的程序。但随着图形界面的兴起还用用户需求的不断增大,应用程序的规模也随之膨胀起来,终于一个难题出现在程序员的面前,那就是应用程序太大以至于内存容纳不下该程序,通常解决的办法是把程序分割成许多称为覆盖块(o...
阅读全文

IAR升级之后编译以前的工程报错的解决办法

2014年04月16日 常见问题  ⁄ 共 943字 IAR升级之后编译以前的工程报错的解决办法已关闭评论 ⁄ 阅读 4,739 次
今天打开一个以前编译正常的项目(用IAR5.5建立的),编译时提示如下错误(现在用的IAR6.3): Error[Pe147]: declaration is incompatible with "__interwork  __softfp unsigned long __get_PSP(void)" (declared at line 52 of "C:\Program Files\IAR   C:\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h  如下图所示: IAR_6.3error 解决方法如下: 1.Check the "Use CMSIS" option from  Project options > General Optio...
阅读全文

dsp中eallow edis是什么意思

2014年04月11日 裸机开发  ⁄ 共 906字 dsp中eallow edis是什么意思已关闭评论 ⁄ 阅读 213 次
DSP 28335中有一些配置寄存器是受保护的,无法直接操作。也就是说在对这些寄存器进行修改之前,需要先去掉保护功能 而保护状态是由状态寄存器中EALLOW标志来指示的。汇编指令“EALLOW”就是将该标志位置位,允许对受保护的寄存器操作 。 EALLOW一般和EDIS配套使用,在对受保护的寄存器操作之后,用EDIS恢复寄存器的被保护状态。 在TI的说明中 712 的98页,有介绍: 5.2 EALLOW 保护寄存器 Preliminary EALLOW 保护寄存器 280x 器...
阅读全文

mini2440(micro2440) 使用 J-Link V8 直接烧写 Nor flash

2014年04月09日 工具配置  ⁄ 共 2109字 mini2440(micro2440) 使用 J-Link V8 直接烧写 Nor flash已关闭评论 ⁄ 阅读 756 次
如果你有mini2440或者是你板子对应的配置文件,这个问题就很好解决,file->open project,选中初始化工程文件: j-link set j-link set 设置好前面这些之后,就可以进行下面的烧写工作了 如果你没有这个配置文件,不要紧,下面将配置过程列举如下,大家可以作为参考: 1. 打开J-Flash ARM,并进入菜单:Options-->Project settings j-link set 2.主要设置CPU选项和Flash选项 CPU : Core --> ARM9, Little endian Use t...
阅读全文

《自己动手写操作系统》学习笔记(六)

2014年03月08日 操作系统  ⁄ 共 5106字 《自己动手写操作系统》学习笔记(六)已关闭评论 ⁄ 阅读 223 次
《自己动手写操作系统》学习笔记目录(持续更新)  http://www.techbulo.com/832.html LDT使用初步 LDT使用初步 在本节中,我们将添加一个LDT段,在段中打印一个字符L,从而学习如何利用程序的LDT段。程序的执行流程随之也会发生变化,我们将分析代码和分析代码结构。 一、概要分析: 在上一节的基础上,我们增加一个段LDT和一个LDT中的一个段codeA。需要注意的是,LDT存在的前提是GDT,因为LDT本身是一个段中,需要由GDT中的信...
阅读全文
×