搜索
bottom↓
回复: 37

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

[复制链接]

出0入36汤圆

发表于 2017-9-14 23:13:45 | 显示全部楼层 |阅读模式
本帖最后由 redworlf007 于 2017-9-15 10:21 编辑

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

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

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

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

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

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

谢谢。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2017-9-14 23:19:11 来自手机 | 显示全部楼层
肯定c是来搞啊

出0入36汤圆

 楼主| 发表于 2017-9-14 23:20:03 | 显示全部楼层

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

出0入20汤圆

发表于 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。

出0入36汤圆

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

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

出0入42汤圆

发表于 2017-9-15 00:16:06 来自手机 | 显示全部楼层
楼主可以指点一下怎么扩展串口的吗,用什么芯片吗?

出0入36汤圆

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

CH438,一片扩8个。

出0入25汤圆

发表于 2017-9-15 00:24:09 来自手机 | 显示全部楼层
先找出占空间大的是什么,看看能不能避开它。。按说只是串口转发的话应该不大,我之前在16M Flash的WRTnode上跑UART转UDP都没问题

出0入0汤圆

发表于 2017-9-15 00:35:56 | 显示全部楼层
肯定是C语言了,开多个线程,还不够用吗?

出0入0汤圆

发表于 2017-9-15 04:49:39 来自手机 | 显示全部楼层
多线程加epoll

出0入42汤圆

发表于 2017-9-15 07:25:18 来自手机 | 显示全部楼层
redworlf007 发表于 2017-9-15 00:17
CH438,一片扩8个。

好的,谢谢指点

出0入0汤圆

发表于 2017-9-15 07:41:20 来自手机 | 显示全部楼层
python要在a9的芯片,像树莓派这样的芯片资源才跑得转,你这个arm9的板子不要想了,老老实实用c吧。

出0入0汤圆

发表于 2017-9-15 08:08:31 | 显示全部楼层
go语言

出0入0汤圆

发表于 2017-9-15 08:15:04 | 显示全部楼层
C语言吧,你这个不带界面的话,肯定是C了。

出0入89汤圆

发表于 2017-9-15 08:20:33 来自手机 | 显示全部楼层
golang简单方便

出0入0汤圆

发表于 2017-9-15 08:35:52 | 显示全部楼层
Golang语言呢

出0入4汤圆

发表于 2017-9-15 08:55:42 | 显示全部楼层
c.  网络使用libevent库

出0入0汤圆

发表于 2017-9-15 09:08:03 | 显示全部楼层
扩 flash呗。

出0入36汤圆

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

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

出0入20汤圆

发表于 2017-9-15 10:51:40 | 显示全部楼层
redworlf007 发表于 2017-9-15 09:12
python组件占地方大,我准备买个1G或者2G的nandflash回来焊上去看看。

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

出0入36汤圆

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

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

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

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

出0入20汤圆

发表于 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干嘛,不需要的。

出0入36汤圆

 楼主| 发表于 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。。。哎。。。

出0入0汤圆

发表于 2017-9-15 13:03:06 | 显示全部楼层
用C。个人猜测:整个系统估计5M不到应该能下来。

出0入36汤圆

 楼主| 发表于 2017-9-15 13:06:25 | 显示全部楼层
stdio 发表于 2017-9-15 13:03
用C。个人猜测:整个系统估计5M不到应该能下来。

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

出0入0汤圆

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

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

出0入36汤圆

 楼主| 发表于 2017-9-15 13:29:06 | 显示全部楼层
机械码农 发表于 2017-9-15 13:17
没有数据总线,你如何括dram?

有数据地址总线的。

出0入0汤圆

发表于 2017-9-16 11:12:55 | 显示全部楼层
如果要用大容量的Flash,可以建议用eMMC Flash

出0入59汤圆

发表于 2017-9-16 12:00:39 | 显示全部楼层
redworlf007 发表于 2017-9-15 13:29
有数据地址总线的。

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

挂静态RAM可以;

出0入0汤圆

发表于 2017-9-16 14:27:34 来自手机 | 显示全部楼层
芯唐的arm9能用ddr?

出0入36汤圆

 楼主| 发表于 2017-9-16 18:46:44 来自手机 | 显示全部楼层
polarbear 发表于 2017-9-16 12:00
我记得972是不能扩DDR, SDRAM 那些的; 没有动态RAM 的驱动信号;

挂静态RAM可以; ...

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

出0入36汤圆

 楼主| 发表于 2017-9-16 18:47:28 来自手机 | 显示全部楼层
长风万里 发表于 2017-9-16 11:12
如果要用大容量的Flash,可以建议用eMMC Flash

我买了2GB的nandflash。

出0入36汤圆

 楼主| 发表于 2017-9-16 18:47:55 来自手机 | 显示全部楼层
javenreal 发表于 2017-9-16 14:27
芯唐的arm9能用ddr?

这个片子不行。

出0入0汤圆

发表于 2017-9-18 01:16:17 | 显示全部楼层
都在用nand不担心掉程序的呀

出0入0汤圆

发表于 2017-9-18 01:16:45 | 显示全部楼层
裁剪py库

出0入36汤圆

 楼主| 发表于 2017-9-18 15:58:28 | 显示全部楼层
zhonggp 发表于 2017-9-18 01:16
都在用nand不担心掉程序的呀

不是有坏块检测么。。。

出0入0汤圆

发表于 2017-9-18 16:18:03 | 显示全部楼层
redworlf007 发表于 2017-9-18 15:58
不是有坏块检测么。。。

坏块产生在system中怎么办。

出0入36汤圆

 楼主| 发表于 2017-9-18 18:12:51 | 显示全部楼层
zhonggp 发表于 2017-9-18 16:18
坏块产生在system中怎么办。

那就挂掉了。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 15:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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