ZigBee TI ZStack CC2530 8.4 用高版本IAR打开低版本协议栈

(配套源码软件开发板等资源,可移步博客同名QQ群:拿破仑940911


一、前言

目前IAR for 8051都更新到10.10.1版本了,但很多朋友却仍在使用着IAR 8.x.x,甚至还有在用IAR 7.x.x的......

A:人家都出到IAR 10.10.1了,你还在用将近十几年前的版本啊!

B:我比较怀旧,就喜欢用十几年前的(IAR)!

A:呃,但这样你就用不了新的协议栈了呀(Z-Stack 3.0.1)!

B:我比较怀旧,就喜欢用十几年前的(协议栈)!

二、Z-Stack最新版本

截止至本篇博客发布,TI的ZigBee协议栈的最新版本为Z-Stack 3.0.1,进入TI官网,可以找到:

三、IAR for 8051最新版本

截止至本篇博客发布,IAR for 8051最新版本为IAR 10.10.1,进入IAR官网,可以找到:

四、版本匹配问题

关于协议栈与IAR的版本匹配问题,请参照ZigBee TI ZStack CC2530 2.4 IAR软件版本(<-点击链接)

在TI的Z-Stack 3.0.1《Z-Stack 3.0 Release Notes.txt》中,明确指出了该版本的协议栈所使用的IAR版本:

就是EW8051 10.10.1。这个时候问题就来了:

1、我想使用最新版本的协议栈:Z-Stack 3.0.1,就得装最新版本的IAR:EW8051 10.10.1

2、我想使用老版本的协议栈:ZStack-CC2530-2.5.1a,就得装最新版本的IAR:EW8051 8.10.4

3、我用新版本的IAR去打开原来老版本的协议栈,就各种不对,编译都不成功!

五、用高版本IAR打开低版本协议栈

ZStack-CC2530-2.5.1aGenericApp为例。

1、打开工程

装了最新版本的IAR之后,找到对应的工程文件:GenericApp.eww,发现图标已经不一样了:

双击GenericApp.eww之后,首先会弹出如下窗口:

IAR这里已经提示我们了:版本太老,是否转换为新版本?这里当然选“Yes”,直接“Enter”回车即可。

紧接着就是一系列的加载:

看上去确实变得高级了许多!

等到全部加载成功之后,就看到了我们“陌生而又熟悉”的界面:

2、编译工程

点击上图中红色圆圈中的图标,即可开始编译整个工程!

编译结束之后,发现编译结果如下:

仔细看报的error

大体都是这一种形式:Error[e46]: Undefined external "?V1" referred in AF......

3、第一步更改操作

更改Number of virtual

找到下图中所示的位置:

Number of virtual原本值为16,将这个值改为8

再次编译,编译结果变为:

4、第二步更改操作

替换启动文件chipcon_cstartup.s51

定位到ZStack-CC2530-2.5.1a\Projects\zstack\ZMain\TI2530DB目录下:

将其中的启动文件chipcon_cstartup.s51删除掉,加入新的同名启动文件chipcon_cstartup.s51

这里上传不了附件,所以大家如果需要的话,可以去群文件里面下载

替换之后,最好是先按下图提示“clean”一下:

再次编译,编译结果如下:

此时可见,error已经没有了!

5、第三步更改操作

禁用所有LCD相关代码

大家肯定已经发现了:自始至终都有11个warning存在!

作为一个有轻微强迫症的程序员,怎么能忍受warning的存在呢?!当然,如果你不介意warning的存在的话,那到这里就已经结束了。

仔细看编译结果中报的11条warning

发现其实全部都是出现在hal_lcd.c文件中的。由于只有我们在使用TI原装开发板的时候,才有可能会用到Z-Stack中的lcd相关代码,一般都是不会去用的。因此,最简单的办法就是:禁用所有LCD相关代码

找到协议栈的预编译选项所在位置:

在红色方框中的“LCD_SUPPORTED=DEBUG”前面加上“x”,改为“xLCD_SUPPORTED=DEBUG”。

并在下面新增一行:HAL_LCD=FALSE。

预编译部分更改完成后,如下图所示:

点击“OK”保存后,再次编译:

大功告成!


(配套源码软件开发板等资源,可移步博客同名QQ群:拿破仑940911

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值