《嵌入式系统构件》中的一个BUG
来源:互联网 发布:大疆dji软件下载 编辑:程序博客网 时间:2024/04/29 08:49
《嵌入式系统构件》一书中,附有各模块的驱动代码。在这些代码中,有一个普遍存在的会导致内存溢出的Bug。
即在使用到OSTaskCreateExt()函数或者OSTaskCreate()函数时的第三个参数使用错误,
比如在键盘章节,P100页中有:
static OS_STK KeyScanTaskStk[KEY_SCAN_TASK_STK_SIZE];
在创建任务时,P104页中有:
OSTaskCreate(KeyScanTask,(void *)0,&KeyScanTaskStk[KEY_SCAN_TASK_STK_SIZE],KEY_SCAN_TASK_PRIO);
其中“&KeyScanTaskStk[KEY_SCAN_TASK_STK_SIZE]正确的用法应该是“&KeyScanTaskStk[KEY_SCAN_TASK_STK_SIZE - 1]”
原书中的写法会导致内存越界。这种错误在本书中多次出现。
而在作者的另外一本书中《MicroC/OS-II The Real-Time Kernel》中的用法是正确的。
也许是书中的源代码也被译者低劣的翻译质量感染了
- 《嵌入式系统构件》中的一个BUG
- 嵌入式系统构件 UART 疑问
- 基于构件技术的嵌入式系统复用软件设计
- java环境变量中的一个Bug还是系统的问题
- total commander在64位系统中的一个小"bug"
- Cg中的一个Bug
- IE7中的一个bug
- ipconntrack中的一个BUG
- 违例中的一个BUG
- NALDecoder中的一个bug
- 嵌入式系统中的FLASH
- 嵌入式系统中的FLASH
- 嵌入式系统中的FLASH
- 嵌入式系统中的中断
- 一个iOS6系统bug+一个iOS7系统bug
- 打败Linux系统中的Bug
- CSDN圈子中的一个BUG
- 建行业务中的一个BUG
- 什么是UDDI
- 初入Csdn的大门
- 留学日本与留学欧美的对比分析
- java反射(Field的应用)
- OpenGL VC++ 配置
- 《嵌入式系统构件》中的一个BUG
- ORACLE相关语法
- 深入 CSocket 编程之阻塞和非阻塞模式
- 日本大学最新排名
- js 图片拖拽
- BOOL与bool类型的区别
- How to: Create and Use a Data Connection Library
- 在日本合法打工情况介绍
- 什么是SOAP