[Raw-OS] 群里的一些讨论

凌海滨   2013-11-15 16:12 楼主
君临天下(304464658) 14:41:22
QQ图片20131115160525.jpg

为啥这两个文件里面没有raw_queue_create这个函数呢

君临天下(304464658) 14:41:40
是不是不需要创建队列啊

君临天下(304464658) 14:51:41
应用前不是应该先创建么?

君临天下(304464658) 14:52:32
QQ图片20131115160606.jpg 这也是创建队列么?



川(873892935) 14:53:29
driver_send_task()这个函数里面有

川(873892935) 14:53:54
96   97  98行

川(873892935) 14:54:02
QQ图片20131115160801.jpg

君临天下(304464658) 14:55:54
哦,奶奶的我查错了文件

川(873892935) 14:56:11


君临天下(304464658) 14:56:16
查了这两个

君临天下(304464658) 14:56:22


君临天下(304464658) 14:57:14
void *queue1_storge[1000];这个queue1_storge是以字为单位的吧?

君临天下(304464658) 14:58:23
QQ图片20131115160826.jpg 这里的1000和2000应该都是16位的字吧?

川(873892935) 14:58:48
里面存的不就是地址么

君临天下(304464658) 15:00:54
难道不是长度么?

君临天下(304464658) 15:01:48
RAW_U32  number     QUEUE消息队列中的消息数

川(873892935) 15:02:03
是的

川(873892935) 15:02:22
消息的数量

君临天下(304464658) 15:02:28
我想知道这个单个消息是存储的字节还是字啊?

川(873892935) 15:03:28
字占几个字节?

君临天下(304464658) 15:03:43
2个

川(873892935) 15:04:09
32位cpu,用的是双字

川(873892935) 15:04:14
存储的就是消息的地址

君临天下(304464658) 15:05:17
哦,那就是相当于一个单字消息就可以存储4个字节的数据,对吧?
川(873892935) 15:06:28
什么叫“单字消息”

君临天下(304464658) 15:07:27
raw_queue_create(&driver_queue, "driver_queue", (RAW_VOID **)queue1_storge, 1);

txj(57026783) 15:07:44
存的是一个地址

君临天下(304464658) 15:07:52
QQ图片20131115160929.jpg

txj(57026783) 15:08:01

一个指针在32位上4个字节


君临天下(304464658) 15:08:25
哦,那就是1000的话就是连续1000个地址?

川(873892935) 15:08:38
1就说明此消息队列中最多存一条消息的地址

君临天下(304464658) 15:10:30
QQ图片20131115160936.jpg

一个地址里面可以放两个这样的数据喽?

川(873892935) 15:11:56
存的是msg1的地址,&msg1

川(873892935) 15:12:26
怎么会是两个?

君临天下(304464658) 15:16:04
哦,我的意思是,消息队里里面是32位的地址,msg1是16位的数据,那不是可以连续放两个么

川(873892935) 15:17:52
你要是有32个1位的数据,那也可以放32个数据

君临天下(304464658) 15:18:06


川(873892935) 15:18:31
这个就是1+1=2的问题,跟消息队列就木有关系啦

txj(57026783) 15:21:08
msg1是16位的数据。 但是msg1 的地址还是32位的

txj(57026783) 15:21:29
存的是地址

txj(57026783) 15:25:02
32位系统单字节的数,使用一个指针去引用这个数,这个指针是几个字节的

君临天下(304464658) 15:25:31
哦,还是32位的

君临天下(304464658) 15:26:38
那就是说存储任何10数据还是要开辟10个地址长度的消息队列,是嘛?

txj(57026783) 15:28:00
是的

txj(57026783) 15:28:50
问题反过来说你申请一块内存,内存里面放1000个数据,你发内存的起始地址出去,不就等于发了1000个数据出去了?

君临天下(304464658) 15:29:00
好的,感谢txj,感谢川,感谢我自己,我给初学者我和自己普及了基本知识

川(873892935) 15:29:50


君临天下(304464658) 15:31:46
我决定每天都要问一些菜鸟问题,这些问题加在一起,txj书都不用写了,再笨的人都精通RAW了

txj(57026783) 15:32:08
这段话会放到论坛里面去的

君临天下(304464658) 15:32:33
中国RTOS联盟的座右铭就是——让笨蛋变成天才

txj(57026783) 15:33:54
根本原因还是C语言没过关,不是笨蛋的原因

涼白开     。(383789599) 15:34:21
c语言多少代码量才算过关呢?弱弱的问下

David(43899943) 15:34:26
这点子不错,超级霸气测漏

逍遥派掌门人(65484765) 15:35:14
过关不是以多少代码量来衡量的

David(43899943) 15:35:18
有个简单方法,编程或学习时间超过5000小时

David(43899943) 15:35:50
如果实践有1万小时,那可以算初级骨灰了

txj(57026783) 15:36:06
可能读公认的优秀的代码是最重要的

txj(57026783) 15:37:01
因为C语言只是工具,关键还是代码的思想,但是代码的思想实现有n多种,看了好的实现又能影响代码编写。

David(43899943) 15:37:02
现在工作工作自由度很大,但是好的习惯真的很重要

逍遥派掌门人(65484765) 15:37:13
c语言多少代码量才算过关呢?
========================
这种意识还是停留在中国的特色教育上


涼白开     。(383789599) 15:37:58
我只是感觉我还不过关

逍遥派掌门人(65484765) 15:38:13
非得要具体量化

David(43899943) 15:38:38
我觉得有点1~2年工作经验了,再反过来看指针专门的书籍,不然会浪费很多时间

David(43899943) 15:38:54
现在学校里是不是用谭的书?



回复评论 (1)

如果实践有1万小时,那可以算初级骨灰了

呵呵,不知道这样的衡量对对不对呀
点赞  2013-11-15 16:59
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复