打印

优秀的嵌入式程序特点

[复制链接]
2750|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
entepino|  楼主 | 2011-5-9 21:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家都来说说,优秀的嵌入式程序应该遵循哪些特点。
优秀的嵌入式程序特点:
1、
增加debug开关,便于调试。

2、
增加一些宏定义、伪编译,便于调试。
3*.h文件,*.c文件与main.c分开,使用时用include包括进去。
4、多使用结构体、环形队列、链表等数据结构及其指针,便于阅读,节省内存。
等等,希望大家都来说说。
评分
参与人数 1威望 +1 收起 理由
xlsbz + 1

相关帖子

沙发
entepino|  楼主 | 2011-5-9 21:44 | 只看该作者
1# entepino
补充一点:每个子函数最好功能单一,别太大,除非有些图像处理函数。

使用特权

评论回复
板凳
王紫豪| | 2011-5-9 21:45 | 只看该作者
多使用结构体、环形队列、链表等数据结构及其指针,便于阅读,节省内存。

便于阅读是对的,但是节约内存很难的

使用特权

评论回复
地板
entepino|  楼主 | 2011-5-9 21:54 | 只看该作者
用结构体指针不节省内存吗?

使用特权

评论回复
5
JX小自| | 2011-5-9 22:22 | 只看该作者
期待中……

使用特权

评论回复
6
sysdriver| | 2011-5-9 22:45 | 只看该作者
增加DEBUG开关便于调试是不错,不过我认为,更优秀的是要培养灵敏的洞察力,程序的掌控性,做到一有问题就猜到某某地方有BUG,并且能在仿真环境下快速定位和判断,查错和改错。我用DEBUG不多,一般用在随机性条件下,用DEBUG开关让它顺序。LZ能举例其他方面的吗?

程序的宏确定有很大作用,但便于调试怎么理解?DEBUG开关不是用宏做的吗?

很赞成.h,.c的风格,我认为.h中的内容不要有杂物,就单单写出exturn的函数就行,连变量也不用,这样做的好处是,层次清晰,内部的东西最好封装起来不要外露,确实需要公共的变量的话,可以用函数返回的形式。然后.c中的内容就定义结构体,变量,宏,声明自己的内部函数等等。

内存的节省跟结构体或指针等没有关系,倒是跟算法有关,跟全局变量和局部变量有关。
多使用typedef定义结构体,并且用函数来初始化和销毁等,可以节省内存。
常使用带参数带返回值的函数也可以省内存。

以上仅为个人观点,如有异议,共同讨论。

使用特权

评论回复
7
HWM| | 2011-5-9 23:16 | 只看该作者
“优秀的嵌入式程序特点”就是让你感觉不到它的存在。

使用特权

评论回复
8
mbutterfly| | 2011-5-10 08:35 | 只看该作者
本帖最后由 mbutterfly 于 2011-5-10 19:55 编辑

6楼说的蛮全面的。不过函数不用extern来声明不是也可以吗。

使用特权

评论回复
9
sysdriver| | 2011-5-10 13:01 | 只看该作者
8# mbutterfly
外部声明才用exturn,内部当然不需要了。

使用特权

评论回复
10
mochou| | 2011-5-10 17:12 | 只看该作者
学习

使用特权

评论回复
11
KAKA31988| | 2011-5-10 17:31 | 只看该作者
多使用结构体、环形队列、链表等数据结构及其指针,便于阅读,节省内存。

便于阅读是对的,但是节约内存很难

使用特权

评论回复
12
KAKA31988| | 2011-5-10 17:31 | 只看该作者
多使用结构体、环形队列、链表等数据结构及其指针,便于阅读,节省内存。

便于阅读是对的,但是节约内存很难

使用特权

评论回复
13
xlsbz| | 2011-5-10 19:41 | 只看该作者
优秀的程序首先要样子好看  
排列整齐

使用特权

评论回复
14
xlsbz| | 2011-5-10 19:47 | 只看该作者
没别的招 多读老外的程序  尤其是那些微软啥的啊 他们的心得  少读所谓高人的程序

模仿 一定要模仿

我的个人心得 就是我好像从没创新 一直在模仿

使用特权

评论回复
15
xlsbz| | 2011-5-10 20:04 | 只看该作者
好的结构

比如通信领域

struct typedef  {
         INT8U  datahhaha[8];
  } mem;

struct tyedef {
        mem    *ptr;
}  code frame;  //加个code省点内存
INT8U   realmem[8];

frame   tryone;  //弄个变量吧

tryone.mem = realmem;

写得太乱了

使用特权

评论回复
16
cecwxf| | 2011-5-10 20:52 | 只看该作者
嗯 好好学习

使用特权

评论回复
17
ycz9999| | 2011-5-10 21:17 | 只看该作者
另外在写代码时尽量将一些初始化的常量用宏定义  这是不是也是一个特点呢?

使用特权

评论回复
18
entepino|  楼主 | 2011-5-11 21:17 | 只看该作者
再顶一下,看看还有没有上来说的。

使用特权

评论回复
19
dong_abc| | 2011-12-14 16:08 | 只看该作者
14# xlsbz

能推荐几个老外的书么?

使用特权

评论回复
20
Ryanhsiung| | 2011-12-14 16:12 | 只看该作者
要模块化,尽量做到高内聚低耦合。
  P.S.  不过这样会增加程序的大小!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

211

主题

649

帖子

2

粉丝