redworlf007 发表于 2017-9-14 23:13:45

请教大家一个ARM+Linux上程序开发的问题

本帖最后由 redworlf007 于 2017-9-15 10:21 编辑

1、我们使用的硬件是新塘的NUC972,300M主频,内置64M DDR 外挂256Mnandflash,两个网口,通过数据地址总线外扩16个串口。
2、内核1.8M,yaffs2文件系统17M
3、功能:通过16个串口接16个设备,按规则转发各个串口发来的命令。

问题如下:
1、我们软件用Python和Python框架搞程序,一个组件装上去后,256M的nandflash就耗尽了。。。

请教大家:
1、对这样的系统,大家会用什么语言开发应用程序。

另外请大家帮忙推荐下2GB的nandflash:

我在淘宝上搜到的是:K9KAG08U0M-PCK0闪存芯片nandflash存储器2G内存颗粒。

淘宝上貌似卖nandflash的销量都非常低,好怕怕。

谢谢。

hongfadg 发表于 2017-9-14 23:19:11

肯定c是来搞啊

redworlf007 发表于 2017-9-14 23:20:03

hongfadg 发表于 2017-9-14 23:19
肯定c是来搞啊

他们嫌C搞起来,没有Python方便。。。

Error.Dan 发表于 2017-9-14 23:39:09

一种治标不治本的方法是只留下pyc甚至pyo文件,反正已经是发布状态不需要源码了。
当然,纯代码文件能吃掉几个字节。。。
如果是依赖太多,包括python环境甚至第三方库之类的,这个基本上无解的,因为你就算不用python其他开发环境该用库的还是要用,难道自己从头写?linux下的so,或者o文件跟windows的dll没有本质区别的。
当然linux下很多库你只要他几个so文件,你apt或者pip一下,他连testcase都给你下载了,这部分肯定是浪费空间的。
建议早期用nfs方式完成开发后琢磨一下部署的问题,当然256M内存也不见得就不够啊,python运行时应该只有几十M的尺寸,你的os,文件系统等等应该有地方需要裁剪。

如果实在不行,上lua,各种路由器8M的flash也可以跑APP。

redworlf007 发表于 2017-9-14 23:47:15

Error.Dan 发表于 2017-9-14 23:39
一种治标不治本的方法是只留下pyc甚至pyo文件,反正已经是发布状态不需要源码了。
当然,纯代码文件能吃掉 ...

256M的FLASH,1.8M的内核,17M的yaffs2文件系统,程序功能,就是倒腾那些串口数据,每个串口设备都有不同的协议,按理说用C写,费不了多少资源,就算用库,也是倒腾串口字符一些的库,应该占不了多大的空间。。。。

我是一个大白菜 发表于 2017-9-15 00:16:06

楼主可以指点一下怎么扩展串口的吗,用什么芯片吗?

redworlf007 发表于 2017-9-15 00:17:49

我是一个大白菜 发表于 2017-9-15 00:16
楼主可以指点一下怎么扩展串口的吗,用什么芯片吗?

CH438,一片扩8个。

XIVN1987 发表于 2017-9-15 00:24:09

先找出占空间大的是什么,看看能不能避开它。。按说只是串口转发的话应该不大,我之前在16M Flash的WRTnode上跑UART转UDP都没问题

XA144F 发表于 2017-9-15 00:35:56

肯定是C语言了,开多个线程,还不够用吗?

bbstr 发表于 2017-9-15 04:49:39

多线程加epoll

我是一个大白菜 发表于 2017-9-15 07:25:18

redworlf007 发表于 2017-9-15 00:17
CH438,一片扩8个。

好的,谢谢指点

hexenzhou 发表于 2017-9-15 07:41:20

python要在a9的芯片,像树莓派这样的芯片资源才跑得转,你这个arm9的板子不要想了,老老实实用c吧。

gongxd 发表于 2017-9-15 08:08:31

go语言{:smile:}{:smile:}{:smile:}

yinjinzhong 发表于 2017-9-15 08:15:04

C语言吧,你这个不带界面的话,肯定是C了。

youkebing 发表于 2017-9-15 08:20:33

golang简单方便

Shampoo 发表于 2017-9-15 08:35:52

Golang语言呢

qinxg 发表于 2017-9-15 08:55:42

c.网络使用libevent库

728196 发表于 2017-9-15 09:08:03

扩 flash呗。

redworlf007 发表于 2017-9-15 09:12:43

XIVN1987 发表于 2017-9-15 00:24
先找出占空间大的是什么,看看能不能避开它。。按说只是串口转发的话应该不大,我之前在16M Flash的WRTnode ...

python组件占地方大,我准备买个1G或者2G的nandflash回来焊上去看看。

Error.Dan 发表于 2017-9-15 10:51:40

redworlf007 发表于 2017-9-15 09:12
python组件占地方大,我准备买个1G或者2G的nandflash回来焊上去看看。

动硬件干嘛,直接NFS到开发机本地,上百G的硬盘够不够。。。
以及你说的对,看起来确实不占什么地方,所以肯定是哪里有问题~
python也没你想的那么恐怖,单片机上跑python的也有,还是建议检查文件系统。

redworlf007 发表于 2017-9-15 10:56:09

Error.Dan 发表于 2017-9-15 10:51
动硬件干嘛,直接NFS到开发机本地,上百G的硬盘够不够。。。
以及你说的对,看起来确实不占什么地方,所 ...

我看了以下软件安装情况:
软件工程师 装了
1、Python Twisted 和依赖库。
2、pyOpenssl 安装了一半

然后现在就是256M空间没有了。

是开发板联网,没有的库就直接自动从网上下了。

Error.Dan 发表于 2017-9-15 11:46:13

redworlf007 发表于 2017-9-15 10:56
我看了以下软件安装情况:
软件工程师 装了
1、Python Twisted 和依赖库。


所以么,你先NFS到本地,看看Uboot和内核能不能支持NFS挂文件系统,不是太老的一般都可以。直接把开发环境搬到本地来,先把功能拉起来。
然后第二个问题,ARM9的系统还能自动联网下载?原厂给的linux还是普通的发行版?是系统级的APT还是只有python的pip,问题是APT和PIP这类包管理器自己也是要占空间和有依赖的。
你在开发阶段,别说256M了,你用10个G也没关系,关键是真正需要部署到系统上的容量是多大。我的建议是先把系统拉起来把功能实现,然后裁剪,你发布出去给客户用的系统上要APT干嘛,不需要的。

redworlf007 发表于 2017-9-15 12:21:41

Error.Dan 发表于 2017-9-15 11:46
所以么,你先NFS到本地,看看Uboot和内核能不能支持NFS挂文件系统,不是太老的一般都可以。直接把开发环 ...

1、可以NFS
2、系统是新塘系统,反着设置了IP、DNS后,python组件可以联网自己安装,具体我也不是很懂,软件在搞。
3、我先买2GB的nandflash回来焊上试试,DDR不够的话我再扩DDR。。。哎。。。

stdio 发表于 2017-9-15 13:03:06

用C。个人猜测:整个系统估计5M不到应该能下来。

redworlf007 发表于 2017-9-15 13:06:25

stdio 发表于 2017-9-15 13:03
用C。个人猜测:整个系统估计5M不到应该能下来。

嗯,我想也是。。。。我主要搞硬件。

机械码农 发表于 2017-9-15 13:17:52

redworlf007 发表于 2017-9-15 12:21
1、可以NFS
2、系统是新塘系统,反着设置了IP、DNS后,python组件可以联网自己安装,具体我也不是很懂, ...

没有数据总线,你如何括dram?

redworlf007 发表于 2017-9-15 13:29:06

机械码农 发表于 2017-9-15 13:17
没有数据总线,你如何括dram?

有数据地址总线的。

长风万里 发表于 2017-9-16 11:12:55

如果要用大容量的Flash,可以建议用eMMC Flash

polarbear 发表于 2017-9-16 12:00:39

redworlf007 发表于 2017-9-15 13:29
有数据地址总线的。

我记得972是不能扩DDR, SDRAM 那些的; 没有动态RAM 的驱动信号;

挂静态RAM可以;

javenreal 发表于 2017-9-16 14:27:34

芯唐的arm9能用ddr?

redworlf007 发表于 2017-9-16 18:46:44

polarbear 发表于 2017-9-16 12:00
我记得972是不能扩DDR, SDRAM 那些的; 没有动态RAM 的驱动信号;

挂静态RAM可以; ...

嗯,我细看了下,只能挂SRAM

redworlf007 发表于 2017-9-16 18:47:28

长风万里 发表于 2017-9-16 11:12
如果要用大容量的Flash,可以建议用eMMC Flash

我买了2GB的nandflash。

redworlf007 发表于 2017-9-16 18:47:55

javenreal 发表于 2017-9-16 14:27
芯唐的arm9能用ddr?

这个片子不行。

zhonggp 发表于 2017-9-18 01:16:17

都在用nand不担心掉程序的呀

zhonggp 发表于 2017-9-18 01:16:45

裁剪py库

redworlf007 发表于 2017-9-18 15:58:28

zhonggp 发表于 2017-9-18 01:16
都在用nand不担心掉程序的呀

不是有坏块检测么。。。

zhonggp 发表于 2017-9-18 16:18:03

redworlf007 发表于 2017-9-18 15:58
不是有坏块检测么。。。

坏块产生在system中怎么办。

redworlf007 发表于 2017-9-18 18:12:51

zhonggp 发表于 2017-9-18 16:18
坏块产生在system中怎么办。

那就挂掉了。。。
页: [1]
查看完整版本: 请教大家一个ARM+Linux上程序开发的问题