编译VxWorks BSP出现的MMUCR_L4_ENABLE的问题

             编译VxWorks BSP出现的MMUCR_L4_ENABLE的问题

                        作者:makethyme

在编译VxWorks的过程中,出现如下的错误:

      $ /cygdrive/c/Tornado2.2_for_arm/host/x86-win32/bin/make build

1ccarm -M -MG -w -mapcs-32 -mbig-endian -march=armv5-ansi  -O2 -fno-builtin -fvolatile -Wall -I/h   -I.

-IC:/Tornado2.2_for_arm/target/config/all -IC:/Tornado2.2_for_arm/target/h -IC:/Tornado2.2_for_arm/target/src/config

-IC:/Tornado2.2_for_arm/target/src/drv   。。。

2ccarm -mapcs-32 -mbig-endian -march=armv5 -ansi  -O2 -fno-builtin -fvolatile -I/h   -I. -IC:/Tornado2.2_for_arm/target/config/all

 -IC:/Tornado2.2_for_arm/target/h -IC:/Tornado2.2_for_arm/target/src/config -IC:/Tornado2.2_for_arm/target/src/drv  。。。

 -DCPU_926EJ -DARMMMU=ARMMMU_926E -DARMCACHE=ARMCACHE_926E  -P -xassembler-with-cpp -c -o romInit.o romInit.s

 

 

关于第一个问题:可以看出是cygdrive下“/”和windows下“/”下的冲突问题,根据分析,Makefile文件最终会根据:

export WIND_HOST_TYPE=x86-win32

export SEQ_HOST=windows32

包含c:/Tornado2.2_for_arm/target/h/make/ defs.x86-win32,将其中的“/”改为“/”,例如

   BIN_DIR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin

改为

   BIN_DIR = $(WIND_BASE)/host/$(WIND_HOST_TYPE)/bin

 

关于第二个问题,经过查找,分析,最后发现在装Tornado for arm时,居然漏掉(也可能时安装的版本较老的缘故) target/h/arch/arm下的cacheArm926eLib.h。从别人处拷贝来该文件。

另外,分析后发现target/h/arch/arm/下的文件mmuArmLib.h不完整,经过比较发现,有如下区别

7a8

> 01r,11may04,dmh  add ARM926EJ, remove bits from variants configured incorrectly

271c272,273

< #if ((ARMMMU == ARMMMU_740T) || (ARMMMU == ARMMMU_940T) || (ARMMMU == ARMMMU_946E))

---

> #if ((ARMMMU == ARMMMU_740T) || (ARMMMU == ARMMMU_926E) || /

>      (ARMMMU == ARMMMU_940T) || (ARMMMU == ARMMMU_946E))

335a338,343

> #if ((defined CPU_926EJ) || (defined CPU_926EJ_T))

> #define MMUCR_ALTVECT      (1<<13) /* alternate vector select */

> #define MMUCR_ROUND_ROBIN    (1<<14) /* round-robin placement */

> #define MMUCR_L4_ENABLE      (1<<15) /* L4 enable, ARMv4 behavior */

> #endif /* CPU_926EJ */

472,475c480

< /* W bit is Should Be One */

< #define MMU_INIT_VALUE (MMUCR_PROG32 | MMUCR_DATA32 | MMUCR_L_ENABLE | /

<                       MMUCR_W_ENABLE)

---

> #define MMU_INIT_VALUE (MMUCR_PROG32 | MMUCR_DATA32 | MMUCR_L_ENABLE)

503,507c508

< /*

<  * W bit is Should Be One, select ARMv4 behaviour for LDR to PC, ITCM and DTCM

<  * are also SBO.

<  */

---

> /* W bit is Should Be One */

509,510c510

<                         MMUCR_ROM | MMUCR_W_ENABLE | MMUCR_L4_ENABLE | /

<                         MMUCR_DTCM_ENABLE | MMUCR_ITCM_ENABLE)

---

>                         MMUCR_ROM)

549d548

< /* W bit is Should Be One, select ARMv4 behaviour for LDR to PC */

551,552c550

<                         MMUCR_W_ENABLE | MMUCR_BIGEND | MMUCR_ROM | /

<                         MMUCR_L4_ENABLE)

---

>                         MMUCR_BIGEND | MMUCR_ROM)

经过改正,最后能够编译完成了。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值