现在位置: 首页

MDK工程中,多个启动文件,KEIL是怎么识别要编译哪个的?

2014年04月23日 常见问题  ⁄ 共 339字 MDK工程中,多个启动文件,KEIL是怎么识别要编译哪个的?已关闭评论 ⁄ 阅读 5,009 次
在整ST的3.4.0固件库的时候,打开了它的工程模板,发现里面有多个启动文件: 多个启动文件 按说添加多个启动文件,编译会出错的。可是这个工程pass得非常好……keil是怎么识别到要编译startup_stm32f10x_hd.s的?寻觅了半天才注意到那些文件图标上的轻微差别。 startup_stm32f10x_hd.s这个文件上没有其他文件图标上的三个红点,表示它现在是包含在项目中的。查看它的配置属性: 注意到了:Include in Target Build。 也就是说在...
阅读全文

什么是位置无关码(PIC)

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

ARM MMU工作原理剖析

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

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

2014年04月16日 常见问题  ⁄ 共 943字 IAR升级之后编译以前的工程报错的解决办法已关闭评论 ⁄ 阅读 6,981 次
今天打开一个以前编译正常的项目(用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是什么意思已关闭评论 ⁄ 阅读 2,620 次
DSP 28335中有一些配置寄存器是受保护的,无法直接操作。也就是说在对这些寄存器进行修改之前,需要先去掉保护功能 而保护状态是由状态寄存器中EALLOW标志来指示的。汇编指令“EALLOW”就是将该标志位置位,允许对受保护的寄存器操作 。 EALLOW一般和EDIS配套使用,在对受保护的寄存器操作之后,用EDIS恢复寄存器的被保护状态。 在TI的说明中 712 的98页,有介绍: 5.2 EALLOW 保护寄存器 Preliminary EALLOW 保护寄存器 280x 器...
阅读全文
×