目前选用了28335,但并没有浮点运算,所以工程的编译选项并没有加载FPU功能(–float_support=fpu32),但是因为要用到 28335的FLASH API库(Flash28335_API_V210.lib),总是link出错,不知是否是因为Flash28335_API_V210.lib库选用了编译选项–float_support=fpu32,而我的工程没有这个编译项的缘故。
请问:
1、如果要用 Flash28335_API_V210.lib,我自己的工程必须选用编译选项–float_support=fpu32?
2、因为没有浮点运算,选用编译选项–float_support=fpu32后,是否有不利影响?
谢谢!
Gong Huang:
我又尝试了打开FPU功能,所以增加 编译项 –float_support=fpu32,编译是可以通过了,但是程序跑飞了。
原工程是正常的,没有编译选项–float_support=fpu32,另外FLASH API库使用的是Flash28235_API_V210.lib(除对FLASH 的操作不能成功,其它程序功能均正常)
谢谢!
目前选用了28335,但并没有浮点运算,所以工程的编译选项并没有加载FPU功能(–float_support=fpu32),但是因为要用到 28335的FLASH API库(Flash28335_API_V210.lib),总是link出错,不知是否是因为Flash28335_API_V210.lib库选用了编译选项–float_support=fpu32,而我的工程没有这个编译项的缘故。
请问:
1、如果要用 Flash28335_API_V210.lib,我自己的工程必须选用编译选项–float_support=fpu32?
2、因为没有浮点运算,选用编译选项–float_support=fpu32后,是否有不利影响?
谢谢!
Jones Chen:
回复 Gong Huang:
用F28235的API也不可以么?
目前选用了28335,但并没有浮点运算,所以工程的编译选项并没有加载FPU功能(–float_support=fpu32),但是因为要用到 28335的FLASH API库(Flash28335_API_V210.lib),总是link出错,不知是否是因为Flash28335_API_V210.lib库选用了编译选项–float_support=fpu32,而我的工程没有这个编译项的缘故。
请问:
1、如果要用 Flash28335_API_V210.lib,我自己的工程必须选用编译选项–float_support=fpu32?
2、因为没有浮点运算,选用编译选项–float_support=fpu32后,是否有不利影响?
谢谢!
Gong Huang:
回复 Jones Chen:
1、原工程用Flash28235_API_V210.lib,不打开 FPU功能,实时库采用 rts2800_ml.lib,程序可以正常工作,当然不能进行FLASH相关操作(因为芯片为335)。
2、为了能实现FLASH的相关操作,就要使用Flash28335_API_V210.lib,如果这样,工程就要打开 FPU,才能link通过,实时库采用 rts2800_fpu32.lib,这样程序一启动就会跑飞。
3、初步跟踪发现,程序进入了非法指令中断的死循环里。
谢谢!
目前选用了28335,但并没有浮点运算,所以工程的编译选项并没有加载FPU功能(–float_support=fpu32),但是因为要用到 28335的FLASH API库(Flash28335_API_V210.lib),总是link出错,不知是否是因为Flash28335_API_V210.lib库选用了编译选项–float_support=fpu32,而我的工程没有这个编译项的缘故。
请问:
1、如果要用 Flash28335_API_V210.lib,我自己的工程必须选用编译选项–float_support=fpu32?
2、因为没有浮点运算,选用编译选项–float_support=fpu32后,是否有不利影响?
谢谢!
Jones Chen:
回复 Gong Huang:
1. 用F28235的Flash API应该也可以对F28335进行操作,因为F2823x和F2833x只有定浮点的差别,其他完全一样。
2. 楼主是否用到了IQmath? IQmath中是定义成Type=Float么?
3. 具体在执行哪条语句导致进入了illegal ISR呢?
目前选用了28335,但并没有浮点运算,所以工程的编译选项并没有加载FPU功能(–float_support=fpu32),但是因为要用到 28335的FLASH API库(Flash28335_API_V210.lib),总是link出错,不知是否是因为Flash28335_API_V210.lib库选用了编译选项–float_support=fpu32,而我的工程没有这个编译项的缘故。
请问:
1、如果要用 Flash28335_API_V210.lib,我自己的工程必须选用编译选项–float_support=fpu32?
2、因为没有浮点运算,选用编译选项–float_support=fpu32后,是否有不利影响?
谢谢!
Gong Huang:
回复 Jones Chen:
1. 用F28235的Flash API应该也可以对F28335进行操作
- 这个还没试,只是想当然,马上试一下。
2. 楼主是否用到了IQmath? IQmath中是定义成Type=Float么
- 没有用IQmath?
3. 具体在执行哪条语句导致进入了illegal ISR呢?
- 不太一定,还没定位到
如果使用 FPU编译选项, 会影响什么呢,除了TI头文件中的delay_us()用到浮点外,我自己的程序没有浮点运算。
谢谢!
目前选用了28335,但并没有浮点运算,所以工程的编译选项并没有加载FPU功能(–float_support=fpu32),但是因为要用到 28335的FLASH API库(Flash28335_API_V210.lib),总是link出错,不知是否是因为Flash28335_API_V210.lib库选用了编译选项–float_support=fpu32,而我的工程没有这个编译项的缘故。
请问:
1、如果要用 Flash28335_API_V210.lib,我自己的工程必须选用编译选项–float_support=fpu32?
2、因为没有浮点运算,选用编译选项–float_support=fpu32后,是否有不利影响?
谢谢!
Jones Chen:
回复 Gong Huang:
1. 不是想当然,你把F28335,全部当成F28235就没有问题了,因为你现在用的就是F28235的功能,这两科芯片除了FPU,没有其他区别。建议您尝试一下。
2. 没用就没有问题。
目前选用了28335,但并没有浮点运算,所以工程的编译选项并没有加载FPU功能(–float_support=fpu32),但是因为要用到 28335的FLASH API库(Flash28335_API_V210.lib),总是link出错,不知是否是因为Flash28335_API_V210.lib库选用了编译选项–float_support=fpu32,而我的工程没有这个编译项的缘故。
请问:
1、如果要用 Flash28335_API_V210.lib,我自己的工程必须选用编译选项–float_support=fpu32?
2、因为没有浮点运算,选用编译选项–float_support=fpu32后,是否有不利影响?
谢谢!
Gong Huang:
回复 Jones Chen:
多谢!
用F28235的Flash API,不打开FPU编译选项是可以的,能实现FLASH的正常操作。
至于打开FPU后,程序跑飞的问题,可能需要花些时间去跟踪,到时有结果再向各位请教。
Thinks Again.