cnCalc计算器论坛

 找回密码
 注册
搜索
查看: 4187|回复: 5

[DIY计算器讨论] Eigenmath单片机移植失败

[复制链接]
发表于 2012-10-19 21:45:06 | 显示全部楼层 |阅读模式
本帖最后由 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)
发表于 2012-10-20 13:24:46 | 显示全部楼层
回lz,我移植Eigenmath到9860的问题基本一样。
话说你有没有删掉pirme table?我觉得那个才是最占RAM的。
另外decomp和divpoly的重载用c++编译器不行么?

(我移植的是WIN32 Console版的)
 楼主| 发表于 2012-10-20 22:26:56 | 显示全部楼层
本帖最后由 nbzwt 于 2012-10-20 22:33 编辑

2# diameter 没有删。IAR编译器不支持重载。你不说我倒没发现,prime table在坑爹啊,连个const标志都不加,直接算到RAM里面去了。还有在besselj和bessely里用到了yn和jn,编译器告诉我未定义,啥情况?
发表于 2012-10-21 00:08:02 | 显示全部楼层
没想到prime居然是打表..
发表于 2012-10-21 01:27:37 | 显示全部楼层
打表……想玩rsa?
发表于 2012-10-21 11:38:36 | 显示全部楼层
3# nbzwt

sh编译器里面提供的math.h也没有提供yn和jn,网上也没有找到实现..我直接注释掉了所有没提供的函数..不知道为啥好像没出什么问题...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cnCalc计算器论坛

GMT+8, 2024-11-21 23:10 , Processed in 0.052906 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表