-
简直有点强词夺理。比如协议中有起始字符和结尾字符的包,没有总长度且总长度不确定,超时根本没法用DMA+定时器来做。一个包有可能几个字节,也有可能上千个字节,你的TIMEOUT要设置成多少呢?
FIFO的TIMEOUT是基于收到字符后的超时,你用DMA用另外定时器是基于整个DMA接收过程的超时。两者不是一个基础的。
FIFO的TIMEOUT可以做到很精确,一般是4.5个字符的超时,所以精确到能分辨出只间隔5个字符时间的两个包。
用DMA用定时器只能分辨DMA最大长度包的间隔,比如你的包最大可能有1000字节,那么只能分辨出上千个字符时间间隔的两个包。。。。发送间隔少一点的2个包,都被DMA和定时器判断为同一个包传输到一个内存区里。
当然你说应用层也可以做TIMEOUT,也可以把两个包分辨开来,不过能用MCU做的为什么不用呢?
为什么人家MCU提供可用TIMEOUT,你却不提供还说可以用户可以自己用定时器来做。
5个串口要5个定时器,你又没凭空比别人多5个定时器。
说起应用驱动分离的就是站着说话不腰疼的,做得象LINUX那样很好,不过就象楼上有人提到的“何不食肉糜”。
-
好的,在主函数里定义了函数类型,并在中断程序所在的文件里进行了申明,现在两个文件都可以编译通过了,谢谢!
-
不完全是断货吧,如果愿意花大价钱订个100片的话,商家还是会帮忙带货的。但价格奇高,供货渠道上应该存在炒货行为
-
哈哈,我没移植过ucos到51,所以不知道,不过支持斑竹的高见,,,
-
引用 8 楼 lpangbing 的回复:
引用 7 楼 heaven_redsky 的回复:
out文件建立的时候CPU类型和编译器类型选择是否正确?
可能是CPU类型不正确
怎么知道板子的CPU类型呢?不知道在哪儿改,初学Workbench3.0没多久……谢谢~
-
不知道你采用的是那个方式,进展怎么样,也是在6410平台上么?
引用 7 楼 bhhu87 的回复:
我现在在这研究者 方面的东西!
-
MARK, 学习下,
帮顶下。
-
代码下载了,不过编译出来的只有资源dll,要如何让系统连接到dll中的资源呢。
需要修改CALIBRUI下面的代码吗?还是如何实现的?
-
同乐同乐
-
各有各优点和缺点。关键要看技术支持力度和研发周期了。片子本身本无错。
-
我怎么觉得底层的不对呀..怎么管脚顺序是"顺时针"的呀
-
引用 42 楼 so927 的回复:
搞定了,其实早就OK了,只是忽略了一个问题
哪就是我编译的steploader不能使用,因此,用的还是以前steploader,是128M的
郁闷啊,我编译的steploader始终不能运行,只有让他们帮我编译一个了,代码一样的,他们编译出来就能运行。
原来wince在steploader之后就不会再初始化内存寄存器了,因此,后面的128M根本就无法使用,还有方法就是在EBOOT或者WINCE中再次初始化内存控制寄存器。
能否把经验分享一下?或者总结一下修改的地方。
Best Regards!
-
哼哼哈哈,牛招聘。这么简洁。
-
图片看不了
-
[url=http://topic.eeworld.net/u/20091208/17/2c26e0d5-d6cb-4a4c-90c1-93714d60903e.html?61454][/url]
-
我的毕设就和GPS有关,呵呵~查资料中。。
-
这种处理策略是有问题的。
串口是基于字符串传送的,每接收一个字符就会中断一次。
lz的程序中断还没结束就想接收到下一个字符,这样行不通的。
-
是不是我做错什么步骤啊?
-
这个是什么新技术?
-
我是想问,通过什么程序吧描述符给pc的,有这方面的源代码吗?