ZephRay 发表于 2012-10-19 21:45:06

Eigenmath单片机移植失败

本帖最后由 nbzwt 于 2012-10-19 21:49 编辑

失败原因:RAM占用过大编译结果:
ROM 125KB
RAM 314KB
我用的单片机虽然说资源相对充裕(ROM 1MB,RAM 192KB),但是还是容不下Eigenmath,裁剪了也不行
不过还是将一下移植的经验:
按照Linux版的去移植,删除以下文件:
cmddisplay.cpp
draw.cpp
history.cpp
html-tool.c
MainXP.cpp
MainOSX.cpp
msqrt.cpp
prototype-tool.c
window.cpp

对于重名函数需要自己改名:
quotient.cpp:
void divpoly(void)
inv.cpp
void decomp(int n)

diameter 发表于 2012-10-20 13:24:46

回lz,我移植Eigenmath到9860的问题基本一样。
话说你有没有删掉pirme table?我觉得那个才是最占RAM的。
另外decomp和divpoly的重载用c++编译器不行么?

(我移植的是WIN32 Console版的)

ZephRay 发表于 2012-10-20 22:26:56

本帖最后由 nbzwt 于 2012-10-20 22:33 编辑

2# diameter 没有删。IAR编译器不支持重载。你不说我倒没发现,prime table在坑爹啊,连个const标志都不加,直接算到RAM里面去了。还有在besselj和bessely里用到了yn和jn,编译器告诉我未定义,啥情况?

imath 发表于 2012-10-21 00:08:02

没想到prime居然是打表..

wtof1996 发表于 2012-10-21 01:27:37

打表……想玩rsa?

diameter 发表于 2012-10-21 11:38:36

3# nbzwt

sh编译器里面提供的math.h也没有提供yn和jn,网上也没有找到实现..我直接注释掉了所有没提供的函数..不知道为啥好像没出什么问题...
页: [1]
查看完整版本: Eigenmath单片机移植失败