搜索
bottom↓
楼主: Gorgon_Meducer

傻孩子新书企划投票——为了写给大家的书[4-28-2013 Updated]

  [复制链接]

出0入0汤圆

发表于 2012-11-15 11:59:06 | 显示全部楼层
您的书我也购买过!当时自己还是一个初学者,感觉语言还是可以凝练的!言简意赅才是王道!

我个人比较推荐方案一,方案一比较适合初学者
对于初学者来说,硬件才刚刚入门,软件技巧缺失。如果第二版能够让初学者在掌握单片机的基础上,慢慢开始熟悉操作系统,调度器等等其他内容,何乐而不为呢!

对于方案三,比较适合工程师,特别是有经验的工程师
我觉得您可能时间和经历跟不上!您出书可能不像高校的老师,能够利用很多的人手,分章节出版。如果您觉得自己精力不够的话,就重点描述其中的几个内容。毕竟其他的内容可以参考其他的书籍。我想一个合格的工程师一定会博览群书,您的图书应该是他知识结构的一部分,锦上贴花的那部分。

呵呵,个人观点!

出0入296汤圆

 楼主| 发表于 2012-11-15 12:03:00 | 显示全部楼层
korgo 发表于 2012-11-15 11:51
建议把常用的接口讲一下,较流行的介绍一下,例如uart,spi,i2c,sdio,1-wire等 ...

介绍这类接口的书籍很多很多……要不大家给你推荐几个?
其实你去大的书店转转就会有斩获的。

出0入0汤圆

发表于 2012-11-15 12:04:26 | 显示全部楼层
我肯定选A。
既然“思想……与具体芯片无关”,那也就不必纠结芯片是否过时,只要还买得到,能让人照着用,那就可以了。

对于方案B,由于缺乏了一个具体的载体,很容易写的太抽象,那就容易走“脱离群众”的路线了,这是我担心的。

而方案C,更是无从谈起!这些知识面,都足够开好几门课程、出好几本书了,想在一本书中融会贯通,难度之大是无法想象的。

出0入296汤圆

 楼主| 发表于 2012-11-15 12:06:08 | 显示全部楼层
xukai871105 发表于 2012-11-15 11:59
您的书我也购买过!当时自己还是一个初学者,感觉语言还是可以凝练的!言简意赅才是王道!

我个人比较推荐 ...

是的,语言凝练,很多人都中肯的提出过这个问题。如果有方案A,或者方案A的变种方案,这部分工作
一定会做的。

至于工程师肯定会博览群书……这个的确不是你想象的那样,大家也想博览群书,中国工程师是勤劳的,勤劳到能者多能不多得……读书的机会很少……

出0入0汤圆

发表于 2012-11-15 12:06:48 | 显示全部楼层
然后,对于GCC方案,我很久没接触过AVR的GCC了,但是从几年前的表现看,是令人不满意的。
如果有条件,可以弱化GCC,并适当提一点IAR。

出0入296汤圆

 楼主| 发表于 2012-11-15 12:06:55 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2012-11-15 12:12 编辑
Cliff 发表于 2012-11-15 12:04
我肯定选A。
既然“思想……与具体芯片无关”,那也就不必纠结芯片是否过时,只要还买得到,能让人照着用, ...


你不纠结不代表其它人不纠结……你看看这个调查结果就知道了……哎……
另外,有一句话叫作“没有金刚钻,不揽瓷器活”,有这个企划就说明自觉我有信心和能力去完成这本书。

出0入296汤圆

 楼主| 发表于 2012-11-15 12:07:33 | 显示全部楼层
Cliff 发表于 2012-11-15 12:06
然后,对于GCC方案,我很久没接触过AVR的GCC了,但是从几年前的表现看,是令人不满意的。
如果有条件,可以 ...

我会注意的,我现在基本上完全用IAR了。除非有特殊的要求。

出0入16汤圆

发表于 2012-11-15 12:16:54 | 显示全部楼层
坚决支持C方案!

出0入0汤圆

发表于 2012-11-15 12:20:57 | 显示全部楼层
我倒是希望看到这样的资料:一个完整的工程.从立项开始,怎么定需求,怎么选方案,怎么规划开发流程,怎么coding,怎么debug,甚至是怎么维护.讲白了就是软件工程,但是似乎又非要扯上硬件...要不?来个可移植的?不然的话,针对任何特定平台的教程其实都算"小众"...

出0入0汤圆

发表于 2012-11-15 12:44:15 | 显示全部楼层
AppleFarm 发表于 2012-11-14 17:37
选A和C
A方案可以将以前第一版 进一步深化。
C方案可以让大家进一步的学习你的思想。


AppleFarm 发表于 2012-11-14 17:37
选A和C
A方案可以将以前第一版 进一步深化。
C方案可以让大家进一步的学习你的思想。.


++1

出0入0汤圆

发表于 2012-11-15 12:49:17 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-14 23:06
你思考的这些问题其实是GUI逻辑层次构架的知识,我会注意在书中详细展开的。

基本思想是隔离:菜单的逻 ...

期待您的巨作!

出0入296汤圆

 楼主| 发表于 2012-11-15 12:50:38 | 显示全部楼层
error_dan 发表于 2012-11-15 12:20
我倒是希望看到这样的资料:一个完整的工程.从立项开始,怎么定需求,怎么选方案,怎么规划开发流程,怎么coding ...

你的建议我会认真考虑的。谢谢哈~

出0入0汤圆

发表于 2012-11-15 12:58:08 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-14 23:06
你思考的这些问题其实是GUI逻辑层次构架的知识,我会注意在书中详细展开的。

基本思想是隔离:菜单的逻 ...

//菜单命令和转义按键值
enum
        {       
        //        5个转义按键值               
                Key_Set = 10,
                Key_Esc,
                Key_Enter,
                Key_Up,
                Key_Down
        //        菜单命令

        };

//语言代码
enum
        {
                CN = 0,// 中文
                EN,    // English
                LANGNUM
        };

//字体大小枚举
typedef enum
{
        Str_SIZE16 = 16,
        Str_SIZE32 = 32
}StrSizeType;

//菜单显示内容结构体
//位置x
//位置y
//内容地址宽度
//内容地址高度
//字体大小
//待显示字符串
typedef struct
{
   u16 x;
   u16 y;
   u16 width;
   u16 height;
   StrSizeType size;
   u8* content;
}DisplayStruct;
//---------------------------------------------------------
//--------菜单结构体
//--------菜单的ID, 也就是菜单的索引号, 是各菜单顺利链接的节点
//--------菜单的标题,(菜单提示内容)
//--------菜单的项目数
//--------菜单的图标
//--------菜单的显示内容
//--------菜单动作执行函数
typedef struct
{
   u8 MenuID;
   u8 **MenuTitle;
   u8 MenuNum;
   u8 **MenuIco;
   DisplayStruct *MenuString;
   void* (*AddAction)();   
}LXMenu;

//--------菜单结构体
//--------菜单的ID, 也就是菜单的索引号, 是各菜单顺利链接的节点
//--------菜单的标题,
//--------菜单的项目数
//--------菜单的图标
//--------菜单的显示内容
//--------菜单动作执行函数
//宏定义: 组合成菜单结构体
                                                        //菜单的ID
                                                        //|                菜单的标题
                                                        //|                |        菜单的项目数
                                                        //|                |        |                                                                                                 //菜单的图标
                                                        //|                |        |                                                                                                   |         //菜单的显示内容
                                                        //|                |        |                                                                                                |          |                                         //菜单动作执行函数
                                                        //|                |        |                                                                                                |         |                                         |
#define MenuWhat(ID, ITEMX) {ID,        0,        (sizeof(ITEMX)/sizeof(DisplayStruct)/LANGNUM),        0,        (DisplayStruct*)ITEMX,        (void*)0,}

这是我真在做的菜单显示内容结构规划(基本上是结合坛里的代码,支持多种语言)。

有一个问题就是菜单结构体重 void* (*AddAction)(); 函数好像都用不上,为何坛里的代码都会有这么有东西呢?  

出0入0汤圆

发表于 2012-11-15 12:58:40 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-15 11:08
这次读者群体定义和《深入浅出AVR》是有承接关系的,也就是说至少读者是通过一本单片机的书已经
入门了的 ...

支持,完整工程弄个光盘就好了,什么时候弄个试读章节呀,很期待哦,呵呵

出0入296汤圆

 楼主| 发表于 2012-11-15 13:00:10 | 显示全部楼层
zyw19987 发表于 2012-11-15 12:58
//菜单命令和转义按键值
enum
        {       

这是用户选中对应菜单后的功能函数——通常一个菜单要么有后续子菜单,要么就是实现具体的功能——比如发消息给后台服务。
而这个功能函数就是通过这个函数指针来实现的。

出0入0汤圆

发表于 2012-11-15 13:03:40 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-15 13:00
这是用户选中对应菜单后的功能函数——通常一个菜单要么有后续子菜单,要么就是实现具体的功能——比如发 ...

哦!通过这个函数就实现了“双向”通信,不再只是上面控制菜单任务了。暂时没想到上面应用实例。

出0入296汤圆

 楼主| 发表于 2012-11-15 13:14:55 | 显示全部楼层
pang123hui 发表于 2012-11-15 12:58
支持,完整工程弄个光盘就好了,什么时候弄个试读章节呀,很期待哦,呵呵 ...

PlanA?现在看来PlanA要搁浅或者裁减了。PlanC的试读估计最快也要半年吧?

虽然PlanC是一个大项目——看似无从下手,其实是有专门的方法的。借机就说下我的计划吧:

第一阶段:准备阶段
    这个阶段的任务是逐步细化出编写大纲,细化的过程是这样的:
    a. 首先宏观分块,宏观到什么程度呢?比如现在书分了三大块,这就是宏观分块。
    b. 完成宏观分块以后,将会枚举所有希望覆盖的知识点——这个时候,知识点是分散的,不必有
      具体的承接关系。我会先列举出自己想到的,到时候还要麻烦论坛上的诸位帮我补充和提点了。
    c. 完成知识点枚举以后,将开始进行知识点布局,简单说就是建立知识点与知识点之间的承接关系
      逻辑关系,可以考虑讲解的顺序了。
    d. 完成知识点布局以后,进入章节划分阶段。顾名思义,这个阶段,要根据前面的知识点布局划分
      章节。这个阶段完成后,实际上达成了以下目标:
      >> 有哪些章节——目录就出来了
      >> 章节要覆盖哪些知识点——章节的任务和目标就出来了

第二阶段:编写阶段
       完成了以上内容,基本就完成了对本书的定义。如果没有大的必要,基本不会变更章节和章节的
      任务目标以及覆盖的知识点。这个时候进入章节编写阶段。
     a. 选择一个章节
     b. 搜集所有和章节知识点相关的资料
     c. 考虑具体的知识点串接结构,并以此设计大纲
     d. 根据大纲,将章节拆分成细小的模块,每个模块的内容都很确定和具体,编写工作量控制在大约
       写个 微知识 的程度。
     e. 利用点滴的业余时间逐个章节编写
     f. 完成一章的编写后,进行通章修订
     g. 修订的版本在小范围内测试
     
     

出0入0汤圆

发表于 2012-11-15 13:16:20 | 显示全部楼层
C吧, 纵观你的方案, 你最想写的应该是C方案, 那就C吧! 其他的都是白搭!

出0入0汤圆

发表于 2012-11-15 13:53:59 | 显示全部楼层
我感脚吧,这C计划不是一本书了...一套买齐了打折不?(可以找人帮忙写么,论坛里的大量帖子整理一下跟原帖作者协商一下也可以用的~

出0入0汤圆

发表于 2012-11-15 14:38:24 | 显示全部楼层
有一本很不错的书就要出版了,是什么书?

出0入296汤圆

 楼主| 发表于 2012-11-15 14:42:34 | 显示全部楼层
aworker 发表于 2012-11-15 14:38
有一本很不错的书就要出版了,是什么书?

状态机基础理论+系统构架设计类的书籍,包含UML和面向对象的知识

出0入0汤圆

发表于 2012-11-15 16:15:56 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-14 21:36
性好没有完全实施方案A,否则一定是个失败的计划。

老大,提个小要求。。。。
能否在书中推荐一些书,不是在最后或者开头特地列个表,而是在书中,讲到某个方面的知识的时候,推荐一下某本书(比如说在讲状态机的时候,老大参考了某本书,并且觉得这本书不错,就注释一下,推荐一下这本书。。。。)
。。。。。。。

出0入0汤圆

发表于 2012-11-15 16:31:36 | 显示全部楼层
BDDDDDDDDd

出0入0汤圆

发表于 2012-11-15 16:46:14 | 显示全部楼层
罪过罪过 投了C

出0入296汤圆

 楼主| 发表于 2012-11-15 17:03:44 | 显示全部楼层
seazhui 发表于 2012-11-15 16:15
老大,提个小要求。。。。
能否在书中推荐一些书,不是在最后或者开头特地列个表,而是在书中,讲到某个 ...

这个没有问题,我会增加参考文献的内容。

出0入0汤圆

发表于 2012-11-15 17:14:57 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-15 14:42
状态机基础理论+系统构架设计类的书籍,包含UML和面向对象的知识

于是我觉得问题很严重啊!然后就做了这么一个投票……等投票结束了,告诉大家一个好消息,有一本很不错的书就要
   出版了——虽然不是我写的,但从原书(英文原版)的内容来看,是非常值得吐血推荐的……哈哈……先卖个关子。
======================
英文原版叫什么啊? 要出版的是中文版?

出0入0汤圆

发表于 2012-11-15 17:16:58 | 显示全部楼层
期待出版

出0入0汤圆

发表于 2012-11-15 17:17:48 | 显示全部楼层
我也投了C,只是简单写写裸奔的话感觉没啥提高的了。

出0入0汤圆

发表于 2012-11-15 17:29:16 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-15 14:42
状态机基础理论+系统构架设计类的书籍,包含UML和面向对象的知识

感觉这本书像是《C嵌入式编程设计模式 》。

出0入0汤圆

发表于 2012-11-15 17:32:48 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-15 11:44
貌似基本没有什么硬件……软件的东西是主体,搭建GUI硬件平台的时候,估计会在论坛里面进行测试和征集。
...

顶,全方位的顶。。

出0入296汤圆

 楼主| 发表于 2012-11-15 18:02:29 | 显示全部楼层
jordonwu 发表于 2012-11-15 17:14
于是我觉得问题很严重啊!然后就做了这么一个投票……等投票结束了,告诉大家一个好消息,有一本很不错 ...

英文原版
Practical UML Statecharts In C/C++:Event-Driven Programming For Embedded Systems 2nd Edition

出0入296汤圆

 楼主| 发表于 2012-11-15 18:02:59 | 显示全部楼层
abcdzhy 发表于 2012-11-15 17:17
我也投了C,只是简单写写裸奔的话感觉没啥提高的了。

亲,不要小看裸奔~

出0入0汤圆

发表于 2012-11-15 19:43:04 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-15 18:02
亲,不要小看裸奔~

亲,你写的什么书,都必看。

出0入0汤圆

发表于 2012-11-15 19:43:38 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-15 13:14
PlanA?现在看来PlanA要搁浅或者裁减了。PlanC的试读估计最快也要半年吧?

虽然PlanC是一个大项目——看 ...

恩,不急,慢工出细活。

感觉这么看的话,可以把你之前那本(我也已经收藏了,AVR的知识我全部跳过了,比较基础,着重看了后面状态机的一些思想,但总觉得意犹未尽的感觉)作为一个引导,然后是你这本新书,这样应该是比较合适的

出0入0汤圆

发表于 2012-11-15 19:52:25 | 显示全部楼层
顶你,傻孩子

出0入0汤圆

发表于 2012-11-15 21:49:19 | 显示全部楼层
y574924080 发表于 2012-11-14 20:05
您可以和傻孩子一起写啊

您的文章对我的帮助很大

啥意思?
楼主就是傻孩子啊

出0入0汤圆

发表于 2012-11-15 22:21:36 | 显示全部楼层
本帖最后由 stm8s 于 2012-11-15 22:23 编辑

我选 C 如出我一定买一本,我已有《深入浅出AVR单片机》

出0入0汤圆

发表于 2012-11-15 22:39:49 | 显示全部楼层
Jigsaw 发表于 2012-11-15 21:49
啥意思?
楼主就是傻孩子啊

之前我回复的是7楼

出200入0汤圆

发表于 2012-11-15 23:12:40 | 显示全部楼层
用方案A的话,还能有几个人买?原来不会买第一版的,现在有几个人会买?原来买了第一版的,还有再买的必要吗,仅仅后面一部分想看能有多少购买欲望?
用B或者C,原来买了的现在刚好进阶估计会有不少人的。
支持B或者C

出0入0汤圆

发表于 2012-11-16 02:31:29 | 显示全部楼层
投了c,真心希望又能有一本中国人写的好书出世,不过也知道写书很累。。
我希望在书的最后能有一个附录,关于某些方向想进一步进阶的书籍参考目录

出0入0汤圆

发表于 2012-11-16 07:18:20 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-15 18:02
英文原版
Practical UML Statecharts In C/C++:Event-Driven Programming For Embedded Systems 2nd Edit ...

这是真的吗!!???太好啦!

出0入0汤圆

发表于 2012-11-16 07:26:54 | 显示全部楼层
支持傻孩子,果断投C,哈哈。

出0入0汤圆

发表于 2012-11-16 09:30:15 | 显示全部楼层
在坛子上搞个什么书的定金,看看有多少人会存。
要不和阿莫商量一下,在坛子里的保证金也可以充抵。
昨天又去借了楼主的书,要再看看里面的思想。
期待C版的书。

出0入36汤圆

发表于 2012-11-16 09:40:34 | 显示全部楼层
b吧,关键是要快点上架。。。。。。。不要大家都退休了才出来经典的书

出0入36汤圆

发表于 2012-11-16 09:43:13 | 显示全部楼层
最重要的是网上已经可以下到“完整版”的深入浅出AVR了,应该快点出更新版本才能打击pdf版本。

出0入0汤圆

发表于 2012-11-16 09:50:01 | 显示全部楼层
个人认为C方案比较好,能比较好的结合软硬件,和切合嵌入式软件工程师的需求。其它两个都有一点局限。

出0入296汤圆

 楼主| 发表于 2012-11-16 10:13:20 | 显示全部楼层
wxlcj 发表于 2012-11-16 09:30
在坛子上搞个什么书的定金,看看有多少人会存。
要不和阿莫商量一下,在坛子里的保证金也可以充抵。
昨天又 ...

写书也算是空手套白狼的活了,不需要这样的营销手段。从这个投票贴,我已经能了解大家的需求了。
谢谢你的提议~

出0入296汤圆

 楼主| 发表于 2012-11-16 10:14:04 | 显示全部楼层
GZZXB 发表于 2012-11-16 09:43
最重要的是网上已经可以下到“完整版”的深入浅出AVR了,应该快点出更新版本才能打击pdf版本。 ...

我自己从淘宝买过扫描版本的,很清晰,才2RMB……

出0入296汤圆

 楼主| 发表于 2012-11-16 10:14:47 | 显示全部楼层
zjr0411 发表于 2012-11-15 23:12
用方案A的话,还能有几个人买?原来不会买第一版的,现在有几个人会买?原来买了第一版的,还有再买的必要 ...

说得很实在~

出0入36汤圆

发表于 2012-11-16 13:06:38 来自手机 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-16 10:14
我自己从淘宝买过扫描版本的,很清晰,才2RMB……

这……不是鼓励读者淘宝买嘛

出0入296汤圆

 楼主| 发表于 2012-11-16 13:37:39 | 显示全部楼层
GZZXB 发表于 2012-11-16 13:06
这……不是鼓励读者淘宝买嘛

实话实说而已……

出0入36汤圆

发表于 2012-11-16 15:04:17 | 显示全部楼层
还在企划中 如此说来,圣诞出demo又要泡汤咯

出0入296汤圆

 楼主| 发表于 2012-11-16 15:13:41 | 显示全部楼层
GZZXB 发表于 2012-11-16 15:04
还在企划中 如此说来,圣诞出demo又要泡汤咯

我多写点微知识来谢罪咯。

出0入0汤圆

发表于 2012-11-16 18:00:49 来自手机 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-16 15:13
我多写点微知识来谢罪咯。

必须的,坐等……

好孩子!!!

出100入0汤圆

发表于 2012-11-16 20:15:34 | 显示全部楼层
支持傻孩子,无论CB,现在就预定一本!

出0入36汤圆

发表于 2012-11-16 20:22:29 来自手机 | 显示全部楼层
嵌入式系统的微模块化程序设计
楼主提到的肯定是这本!

出0入36汤圆

发表于 2012-11-16 20:25:38 来自手机 | 显示全部楼层
噢不对,这本已经上架了咯。楼主说的是尚未上架的

出0入96汤圆

发表于 2012-11-16 21:57:36 | 显示全部楼层
选C,实用为主,可以当工具手册使用

出0入0汤圆

发表于 2012-11-16 22:34:11 | 显示全部楼层
个人觉得A,C可以兼顾,只要把第一版重印继续发行,然后再出一本想出的书就行了。

首先,楼主写的方案里C最详细,明显有失偏颇,引导读者选择C方案。
第二,AVR在伟大的祖国已经过时(个人感觉,不喜勿喷),再用AVR做书名,恐怕初学会认为这个书不再流行,于是影响销量。
第三,书卖完了可以重印嘛,为什么要再出新版呢?AVR确实Mega换成了XMEGA,但是差距不大。
第四,不管是系统的C方案,还是不系统的B方案,感觉都不系统,至少没看到目录感觉都不系统。

个人感觉首先书籍要定位,定位于初学者还是中级想要提高的读者,或者是作为某一领域深入的专著,感觉搞单片机的人对于操作系统原理和嵌入式操作系统(抢占式多任务系统)了解的不多,大部分人还在用单片机的循环和状态机来完成多任务,而且仅限于完成任务,理论深入的很少,所以这部分还有很大的空间可以写。而且在大规模软件开发中使用的方法论也可以改善部分嵌入式小型软件开发者简单开发的模式。

如果没时间写,或者经验欠缺,可以考虑翻译几本不错的外文书籍:
比如:Making Embedded Systems、Practical UML Statecharts In C/C++、An Embedded Software Primer、Test Driven Development for Embedded C
或者按照中国特色的书籍路线,写一个自己想要的目录,然后从上面的数目中摘抄拼凑一本书,也会大卖的能弄到书号就可以赚钱

出0入296汤圆

 楼主| 发表于 2012-11-16 23:00:25 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2012-11-16 23:04 编辑
javabean 发表于 2012-11-16 22:34
个人觉得A,C可以兼顾,只要把第一版重印继续发行,然后再出一本想出的书就行了。

首先,楼主写的方案里C ...


很中肯的评论,谢谢!

就你提出的几个问题,我来做一些解释说明:
1、客观的说,从这个帖子的内容来说,的确有引导的嫌疑;但实际上A方案代表的《深入浅出AVR》,
   从目录到内容,从测试版本到勘误都是在这个论坛上进行的,大家可以说都非常了解,所以补充
   修订的内容就足够的。而对于一个新的方案来说,比如方案C,没有一定的说明成分,大家是不能
   猜到我的想法的。比如,我直接简单的说“写一本新书,系统地介绍我关于单片机开发的理解”
   可能大家会更迷惑。
2、你提出的问题正是我对方案A担心的所在。
3、出版社已经重印过一次,这一次是出版社明确提出,再出一个第二版,否则重印意义不大。
4、所谓的系统也是一个相对概念,一本书能够围绕一个有限的主体深入展开已经可以称为系统。大而
   全是无法实现的理想。另外,关于MCU级别的嵌入式系统开发,已经有很多很优秀的书籍覆盖了一些
   重要的知识点,比如台湾作家高涣堂的《UML+OOPC》几乎把面向对象C语言开发的技术深入浅出
   由里到外的翻了个遍,实在没有必要就这个内容再做赘述;同样道理,关于状态机系统构成(注意是
   构成,而不是应用方法)马上北航出版的一本外文翻译书籍,也就是你列举的书籍之一已经将UML+
    状态机的开发模型介绍的深入骨髓,所以这部分内容也无须浪费口舌。我所需要的是根据自己对理论
   体系的理解,根据需要将内容展开,而不必面面俱到。举例来说,状态机这部分知识,刚才说已经有
   书介绍他的理论结构了——但这就好比有一个瑞士军刀,然后有一本非常好的手册介绍了瑞士军刀的
   结构和设计理念——但是这本手册并没有深入介绍瑞士军刀可以如何在实际生活中发挥应用,如何用
   到最巧,如何发挥最大的价值——类比过来,我就希望着重于这个方面——将思想而不是结构本身
   阐述给大家。
  
   如你所说的一样,写书必须要首先定位人群,这也是我最早做好的功课。这本书的定位是已经有了
  《深入浅出AVR》入门基础,或者其它单片机入门基础的人。基本可以看作是有一定工作经验,尝试
  提升自己的工程师。我想重点涉及的就是你说的“有很大空间”的地方——这点我们观点相同。

   最后,翻译书籍的事情我已经和北航的编辑在实际操作了,只不过没有公布出来。另外你列举的书籍
   已经都有作者在翻译了,在2012年底和2013年将陆续出版。

   至于经验缺乏的问题,我想我还是有自信的,唯一问题就是时间。不过现在时间的问题其实是一个工
   程管理的问题——可以通过很好的需求分析,将项目拆分成足够细小的部分,然后逐一攻破。

   再次感谢您中肯的建议。目录不是那么简单就一拍脑袋弄出来了。如果你仔细看了我楼主位关于编写
   方法的叙述,就知道我对于内容有多么慎重。可以说,目录的确定要很大程度上通过与本论坛网友的
   互动来产生,到时候还请您能一直关注。


   最后,书号一直都不是问题。然后所谓的大卖,只要进入不了大学课堂,基本都是公益。如果您有兴趣
   也这么走了一遭,一定会对写书的经济效益问题有甚至比我还深刻的体会。

出0入0汤圆

发表于 2012-11-16 23:07:48 | 显示全部楼层
对于我们来说,肯定是希望能看到 C 方案的

关键是你自己怎么想

出0入296汤圆

 楼主| 发表于 2012-11-16 23:08:54 | 显示全部楼层
STM32_Study 发表于 2012-11-16 23:07
对于我们来说,肯定是希望能看到 C 方案的

关键是你自己怎么想

我也是这么想的。

出0入0汤圆

发表于 2012-11-17 13:14:05 | 显示全部楼层
写程序关键是思想,强烈建议C方案!

出0入0汤圆

发表于 2012-11-17 13:31:27 | 显示全部楼层
关注中…………

出0入0汤圆

发表于 2012-11-17 13:58:41 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-16 23:08
我也是这么想的。

arv32的书还出吗?

出0入0汤圆

发表于 2012-11-17 14:34:04 | 显示全部楼层
不考研了么?

出0入296汤圆

 楼主| 发表于 2012-11-17 23:40:44 | 显示全部楼层
spy2008 发表于 2012-11-17 13:58
arv32的书还出吗?

很遗憾,烂尾了……话说,中国用AVR32的人也没几个

出0入0汤圆

发表于 2012-11-18 11:23:34 | 显示全部楼层
出来后一定买一本

出0入0汤圆

发表于 2012-11-19 10:52:39 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-17 23:40
很遗憾,烂尾了……话说,中国用AVR32的人也没几个

  的确很遗憾!一直关注AVR32和XMEGA,希望AVR32很XMEGA还能焕发生机。

出0入0汤圆

发表于 2012-11-19 11:01:50 | 显示全部楼层
可以,做做沙发!

出0入0汤圆

发表于 2012-11-25 14:34:42 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-16 23:00
很中肯的评论,谢谢!

就你提出的几个问题,我来做一些解释说明:

顺手把这本《UML+OOPC》给买了

出0入296汤圆

 楼主| 发表于 2012-11-26 00:22:56 | 显示全部楼层
error_dan 发表于 2012-11-25 14:34
顺手把这本《UML+OOPC》给买了

顺便看了最好

出0入0汤圆

发表于 2012-11-26 00:24:24 | 显示全部楼层
期待。。。。。

出0入0汤圆

发表于 2012-11-26 10:12:53 | 显示全部楼层
error_dan 发表于 2012-11-25 14:34
顺手把这本《UML+OOPC》给买了

想问问你是在哪里买的?几多钱钱?

出0入0汤圆

发表于 2012-11-26 10:19:33 | 显示全部楼层
eduhf_123 发表于 2012-11-26 10:12
想问问你是在哪里买的?几多钱钱?

呃,京东当当亚马逊全都缺货了,我是在淘宝买的,买打折的展示书,打折四十块包邮,其他的店差不多60来块钱的样子也不算贵,那家店里库存还有几本,我还没收到,收到了看看质量再说.

出0入0汤圆

发表于 2012-11-26 10:21:49 | 显示全部楼层
error_dan 发表于 2012-11-26 10:19
呃,京东当当亚马逊全都缺货了,我是在淘宝买的,买打折的展示书,打折四十块包邮,其他的店差不多60来块钱的 ...

好的,等你做完小白鼠,我再跟进,哈哈!

出0入0汤圆

发表于 2012-11-30 19:48:56 | 显示全部楼层
C方案很给力啊,真的能出版的话,应该是和《Practical UML Statecharts In C/C++》一样的重量级大作了加油啊~~
傻孩子大哥的很多实用的软件知识,对我这种身处技术人员流动快,不讲究软件技术的小公司的人,学习规范的 有力的 编程技术帮助很大。
最近看你在ARM板块发表的微知识系列作品,是不是为C方案热身呢,很期待呢。
另外在2010年的时候 umlchina就喊着这本《Practical UML Statecharts In C/C++》的“中译本即将由北航出版社出版,UMLChina审校”了,结果到现在都还只是个画中的馅饼……
英文版原书700多页,搞成中文怎么也要600多页吧,哈哈 又是一本砖头一样的书,这本书的第一版的翻译质量实在是让人很难看下去,
我是硬着头皮 中英文对照看 ,才坚持看到第四章多一点,就因为项目进度关系就不能继续看下去了,
然后匆匆的将《时间触发模式》的合作调度器和qp nano的Q_FSM结合起来弄进新项目里,可惜对状态机的理解还不够深入,
总感觉到自己的实现方式和理想还差的很远。如果第二版真能出版的话,那就太好了,我对它里面的状态机支持的部件很感兴趣。

出0入296汤圆

 楼主| 发表于 2012-11-30 22:16:35 | 显示全部楼层
本帖最后由 Gorgon_Meducer 于 2012-11-30 22:20 编辑
chencc8 发表于 2012-11-30 19:48
C方案很给力啊,真的能出版的话,应该是和《Practical UML Statecharts In C/C++》一样的重量级大作了{:lov ...


微知识系列确实是在热身,同时也是在做实验:测试大家对知识点的第一反应,关心的点以及普遍欠缺的地方。
C方案已经在实施了。可能会采取降低风险的方法,分册出版,也就是写好一部分就出版一部分,也避免砖头垫桌角的尴尬。

另外在发布一个新书预告,本坛另外一位大牛的AVR作品已经杀青,即将出版。着重专题深加工和重量级应用的剖析。
敬请期待。基本上我的B方案也不用写啦。

出0入0汤圆

发表于 2012-11-30 22:27:49 | 显示全部楼层
强烈选择C

出0入0汤圆

发表于 2012-11-30 23:07:28 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-30 22:16
微知识系列确实是在热身,同时也是在做实验:测试大家对知识点的第一反应,关心的点以及普遍欠缺的地方。 ...

火腿的书么?

出0入296汤圆

 楼主| 发表于 2012-11-30 23:24:23 | 显示全部楼层
eduhf_123 发表于 2012-11-30 23:07
火腿的书么?

不,暂时不再剧透。

出0入0汤圆

发表于 2012-12-2 00:16:04 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-26 00:22
顺便看了最好

#define CLASS(type)       \
typedef struct type type; \
struct type


我想问一下,这个宏定义是什么意思。我看不明白。

出0入0汤圆

发表于 2012-12-2 00:37:39 | 显示全部楼层
虽然我投了C

但是在作者方面的考虑,最好把A的新内容+B内容(水分少点)+ 少许的C内容

然后2年后再把C搞出来,再加入一些新的元素和MCU架构铺垫

然后2年后 在把新技术+ 新MCU构架写出啦  

然后再。。。。。。。。。。。

就像以前看赵本山的相声《买拐》一样 一直有续集 且前一级都有少许的铺垫

出0入0汤圆

发表于 2012-12-2 09:37:14 | 显示全部楼层
good_hccy 发表于 2012-12-2 00:16
#define CLASS(type)       \
typedef struct type type; \
struct type

这是用C实现面向对象技术的方法中的一小段。不知道你的宏是哪种方法
如果是C+这个C面向对象宏的话相关的几个定义就是这样的:
#define CLASS(type) \
typedef struct type type;\
struct type \
{

#define METHODS };
#define END_CLASS

比如定义Key对象
CLASS(Key)
    void (* hanshuzhizhen )(void);//函数指针
    unsigned char xiangguanbianliang;//相关的变量
METHODS
    void KeyA(void);//A方法
    void KeyB(void);//B方法
END_CLASS

Key AO_Key;//Active object Key 应该是活跃对象的意思吧- -

展开来就是
typedef struct Key Key;//定义struct Key 结构体类型Key
struct Key

    void (* hanshuzhizhen )(void);//函数指针
    unsigned char xiangguanbianliang;//相关的变量
};
void KeyA(void);//A方法
void KeyB(void);//B方法

Key AO_Key;//Active object Key

具体应用方法请参考《嵌入式系统的微模块化程序设计》,或者网上的一些C 面向对象实现技术

出0入0汤圆

发表于 2012-12-2 14:47:22 | 显示全部楼层
chencc8 发表于 2012-12-2 09:37
这是用C实现面向对象技术的方法中的一小段。不知道你的宏是哪种方法
如果是C+这个C面向对象宏的话相关的 ...

我看了你的回答。。多谢。。下面为完整的文件。
l


w_oopc.h

/*         lw_oopc.h : MISOO团队设计的C宏                                        */


#include <malloc.h>

#ifndef LW_OOPC
#define LW_OOPC

#define CLASS(type)       \
typedef struct type type; \
struct type


#define CTOR(type)        \
void* type##New()         \
{                         \
struct type *t;        \
t = (struct type*)malloc(sizeof(struct type));

#define CTOR2(type, type2)     \
void* type2##New()             \
{                              \
struct type *t;             \
t = (struct type*)malloc(sizeof(struct type));   

#define END_CTOR return (void*)t; }
#define FUNCTION_SETTING(f1, f2) t->f1 = f2;
#define IMPLEMENTS(type) struct type type
#define INTERFACE(type) struct type

#endif

出0入296汤圆

 楼主| 发表于 2012-12-2 17:24:54 | 显示全部楼层
good_hccy 发表于 2012-12-2 14:47
我看了你的回答。。多谢。。下面为完整的文件。
l

你这个问题在UML+OOPC的书里面有详细解答,不要跳着看,请耐心

出0入0汤圆

发表于 2012-12-2 23:32:26 | 显示全部楼层
Gorgon_Meducer 发表于 2012-12-2 17:24
你这个问题在UML+OOPC的书里面有详细解答,不要跳着看,请耐心

先解答一下嘛。。让我有动力往看。

出0入0汤圆

发表于 2012-12-4 14:58:40 | 显示全部楼层
这个要MARK

出0入93汤圆

发表于 2012-12-5 20:22:21 | 显示全部楼层
chencc8 发表于 2012-12-2 09:37
这是用C实现面向对象技术的方法中的一小段。不知道你的宏是哪种方法
如果是C+这个C面向对象宏的话相关的 ...
  1. #define CLASS(type) \
  2. typedef struct type type;\
  3. struct type \
  4. {

  5. #define METHODS };
  6. #define END_CLASS

  7. 比如定义Key对象
  8. CLASS(Key)
  9.     void (* hanshuzhizhen )(void);//函数指针
  10.     unsigned char xiangguanbianliang;//相关的变量
  11. METHODS
  12.     void KeyA(void);//A方法
  13.     void KeyB(void);//B方法
  14. END_CLASS

  15. Key AO_Key;//Active object Key 应该是活跃对象的意思吧- -

  16. 展开来就是
  17. typedef struct Key Key;//定义struct Key 结构体类型Key
  18. struct Key

  19.     void (* hanshuzhizhen )(void);//函数指针
  20.     unsigned char xiangguanbianliang;//相关的变量
  21. };
  22. void KeyA(void);//A方法
  23. void KeyB(void);//B方法

  24. Key AO_Key;//Active object Key
复制代码
这里所谓的A方法、B方法不能算是方法吧,只不过是普通函数,顶多可以算是静态方法,因为它没有传递this指针。一个方法,连自己是谁都不知道,何来方法之称呼?C中默认的调用约定是cdecl,类方法调用约定是thiscall,BCB采用fastcall,完全不一样。
要实现方法,至少能也得这么模拟吧:
  1. void KeyA(type* this);
复制代码
而且不能使用函数指针模拟,函数指针模拟的是虚函数。

出0入296汤圆

 楼主| 发表于 2012-12-5 21:56:30 | 显示全部楼层
takashiki 发表于 2012-12-5 20:22
这里所谓的A方法、B方法不能算是方法吧,只不过是普通函数,顶多可以算是静态方法,因为它没有传递this指 ...

OOPC历来都有两大派别,拟真派和行为派
拟真派主要从代码的形式考虑,要么希望与C++等OO语言的用法相近,要么追求代码的执行实质与c++编译后的汇编代码行为相同。
行为派强调代码的功能实质在逻辑上是OO的就可以了,不拘泥于具体用什么方法和形式。
二者都有相当数量的拥护者,但有一个大规律是,很多人接受,掌握和应用OOPC技术都是从拟真派开始的,最终很大一部分人会转变成行为派。

拟真派OOPC的著名文献有Object Oriented Programming with ANSI-C
行为派的著名文献有UML+OOPC

OO本来就只是一种思想,在思想的指导下应用各种辅助手段来实现逻辑,所以,最终大部分人会成为行为派。

我自己就是行为派的,当然也从狂热的拟真派过渡过来的。

出0入93汤圆

发表于 2012-12-6 09:22:07 | 显示全部楼层
Gorgon_Meducer 发表于 2012-12-5 21:56
OOPC历来都有两大派别,拟真派和行为派
拟真派主要从代码的形式考虑,要么希望与C++等OO语言的用法相近, ...

不懂什么拟真派和行为派,也不会使用C去模拟什么OO,C++已经足够了。
只是就事论事而已,所谓面向对象,面向的对象都没有了,面向NULL吗,多少还是需要传递this指针的吧?撇开对象去谈面向对象,至少我是不能接受的。

绝大部分情况下,procedure/sub、function、method基本上是等价的,嗯,Pascal/Delphi还有类似的event,但是有很细微的区别:
procedure/sub:专指没有返回值的function
function:Pascal系(狭义)中专指有返回值的函数,绝大部分(广义)则包含了procedure、function(狭义)、method
method:专指对象调用的function,一定要有对象,哪怕是空对象,哪怕是类(静态方法)。
event:Pascal系中,对象的回调函数。他是一个结构体,成员分别是对象本身以及一个函数指针组成,与以上三种都不兼容。

出0入0汤圆

发表于 2012-12-6 14:05:28 | 显示全部楼层
takashiki 发表于 2012-12-6 09:22
不懂什么拟真派和行为派,也不会使用C去模拟什么OO,C++已经足够了。
只是就事论事而已,所谓面向对象, ...

发现您是学院派的。

出0入93汤圆

发表于 2012-12-6 14:36:41 | 显示全部楼层
eduhf_123 发表于 2012-12-6 14:05
发现您是学院派的。

发现您是盲流派的。

出0入0汤圆

发表于 2012-12-6 14:46:56 | 显示全部楼层
Gorgon_Meducer 发表于 2012-11-16 23:00
很中肯的评论,谢谢!

就你提出的几个问题,我来做一些解释说明:

有微博了呀!

出0入93汤圆

发表于 2012-12-6 14:47:41 | 显示全部楼层
eduhf_123 发表于 2012-12-6 14:05
发现您是学院派的。

有一种语言,将C面向对象做到了极致,没有了C++的浮华和臃肿,却又平添了N多的晦涩。
它,就是大名鼎鼎的Object-C。
这个是不学院的,却是实实在在的行动派的,建议阁下学学这个,忘掉苦逼的C吧,Object-C成就了多少人啊。

出0入0汤圆

发表于 2012-12-6 14:51:24 | 显示全部楼层
大家赶紧速速加傻老师的微博,,,,,,,,,,,,,见傻老师签名,,,,,,,,,,

出0入296汤圆

 楼主| 发表于 2012-12-6 15:09:10 | 显示全部楼层
takashiki 发表于 2012-12-6 14:47
有一种语言,将C面向对象做到了极致,没有了C++的浮华和臃肿,却又平添了N多的晦涩。
它,就是大名鼎鼎的 ...

是我没有仔细看前面的帖子,没有注意到他的方法里面没有传递起码的抽象数据类型。我以为你只是在强调它的格式问题。
是我草率了,致歉。

Object-C很不错,只是不支持普通的MCU。

出0入296汤圆

 楼主| 发表于 2012-12-6 15:13:21 | 显示全部楼层
takashiki 发表于 2012-12-6 09:22
不懂什么拟真派和行为派,也不会使用C去模拟什么OO,C++已经足够了。
只是就事论事而已,所谓面向对象, ...

其实他的例子代码里面最后有一个AO_Key,这似乎是它解决this指针的办法。如果真是这样,这个方法应该被批判的,
因为这个AO_Key是一个静态变量,只有一个实体,如果所有的方法都只关系“当前Active的Object”,那么显然没有考
虑到代码的可重入问题。

出0入0汤圆

发表于 2012-12-6 17:17:52 | 显示全部楼层
takashiki 发表于 2012-12-5 20:22
这里所谓的A方法、B方法不能算是方法吧,只不过是普通函数,顶多可以算是静态方法,因为它没有传递this指 ...

恩恩,我对面向对象的了解 实在是很有限,班门弄斧能引出真正懂的人来讨论就好,不过你们的讨论我有点看不懂呢~

我才刚开始接触面向对象,看到什么都想用结构体包装一下。
在 嵌入式系统的微模块化程序设计 的作者,使用C+宏来实现FSM状态机架构的方法中,
用到了VTABLE等 一些我暂时看不懂的宏,幸好书中还有用纯C实现状态机的例子,通过那个例子发现作者用C+宏实现状态机框架的方法中,
有些宏是可以省略掉的,比如VTABLE,我想这些宏应该是用来实现一些我暂时用不到的特性的吧。
由于项目的时间很紧,而我又对面向对象年念念不忘,
匆匆的将QP_NANO(在QP_NANO的实现和例子中,作者彻底抛弃了C+宏)和C+宏生搬硬套的搅到了一起,
我也感觉到自己的实现方式很糟糕,特别是C+宏将所有的方法在头文件中暴露在外界……
等这个项目完成后,再好好的精心研读一下面向对象的技术和C#,并将以前的上位机程序改到C#好了。

C的面向对象是好是坏,我准备等我掌握这项技术,并在应用中了解到利弊之处后再做取舍

出0入296汤圆

 楼主| 发表于 2012-12-6 18:38:18 | 显示全部楼层
chencc8 发表于 2012-12-6 17:17
恩恩,我对面向对象的了解 实在是很有限,班门弄斧能引出真正懂的人来讨论就好,不过你们的讨论我有点看 ...

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

本版积分规则

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

GMT+8, 2024-4-18 17:49

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

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