《嵌入式C语言自我修养》勘误

嵌入式C语言自我修养:从芯片、编译器到操作系统》自从2021年5月初上市以来,受到了广大网友和读者的欢迎和支持。目前第一次、第二次、第三次、第四次印刷已经售罄,第5次印刷正在销售中。当然,由于作者水平、时间、精力有限,书中难免会有一些错误,受益于广大网友和读者的积极反馈和指正,目前已经发现了20余处,虽然都是一些细节问题,但也会给读者带来一定的困扰,再次深表歉意。现在将书中错误的地方汇总,请大家阅读时注意辨别,以免造成误解。若后面继续印刷,第6次印刷版本,将会修复以下编辑错误。

TIPS:
行数定位方法:一行代码或文字算一行,代码间空行、段落间空行忽略不计,不算一行。

第一次印刷版本:

勘误01:P20第21行:my_brancn 应为 my_branch
勘误02:P52第19行:SMID 应为 SIMD
勘误03:P91第19行:ADD R1, R2, R3 应为 SUB R1, R2, R3
勘误04:P134倒数第5行:开发版 应为 开发板
勘误05:P157第8行:art1.o 应为 crt1.o
勘误06:P170第13行:const chat 应为 const char
勘误07:P247倒数第12行: k = malloc(32); 应为 char *k = (char *)malloc(32);
勘误08:P265第7行:Institude 应为 Institute
勘误09:P281倒数第10行:执行 应为 指向
勘误10:P281倒数第9行:定义一个指针x所指向类型的指针变量y 应为 定义一个指针X所指向类型的变量y
勘误11:P319倒数第12行:void f() __attribute__((weak,alias(“__f”); 应为 void f() __attribute__((weak,alias (“__f”)));
勘误12:P293倒数第11行:__attribute__((aligned(8)) = 4;少了一个括号,应为:__attribute__((aligned(8))) = 4;
勘误13:P349 14、15、16行:

     - 有符号数-2转换为无符号数为126,应改为254
     - 有符号数-10转换为无符号数为118,应改为246
     - 然后和2做加法运算等于120,应改为248

勘误14:P6倒数第10行,#vim -version 应为 #vim --version

第二次印刷版本:

勘误15:P206 图5-14中,内存栈中i、j的位置标反了,值为20的地方应为 j 变量

第三次印刷版本:

勘误16:P390 倒数第一行,常量指针 应为 指针常量
勘误17:P391 第一行,常量指针 应为 指针常量
勘误18:P391 第21行,常量指针 应为 指针常量
勘误19:P84页,图3-2,V=1表示符号为溢出,其中的符号为 应为 符号位

第四次印刷版本:

勘误20:P112页,代码倒数第8行,.align 2的注释,2表示 power of 2,对齐方式应该是:4字节对齐
勘误21:P270页,第15行,a[10]和a[30]之间的20个数组元素赋值为1,应为:21个数组元素赋值为1
勘误22:P132页:第3行,缺少命令行运行结果
勘误23:P240页,倒数第8行,Frambuffer应为 Framebuffer
勘误24:P422页,18行、19行,结构体内指针声明少了一个 list_node
勘误25:P528页,第15行:16进制数据0XFFFF00FF应为0XFFFFFF0F,跟下面程序中的位掩码相匹配
勘误26:P451页,倒数第15行,“我们常见的完全类型如下”应改为:“我们常见的不完全类型如下”
勘误27:P359页,第17行,intypes.h少了一个t,应改为 inttypes.h

第五次印刷版本

勘误28:P102页,第12行,R12是IP寄存器,为临时寄存器;R11才是FP寄存器,函数栈指针寄存器
勘误29:P83页,第5行,CPSP,应为CPSR
勘误30:P279页,倒数第9行,(void)(&x == &y)应为:(void)(&_x == &_y)
勘误31:P382页,倒数第15行,*p++应先间接访问,然后P的值再自增。
勘误32:P265页,倒数第1行,无限通信,应为:无线通信
勘误33:P215页,倒数第5行:参数MemBlk_Ptr应为:MemBlk
勘误34:P29页,倒数第12行:发动机 改为 显示屏

第六次印刷版本

勘误35:P389页,倒数第13行:常量指针,应为:指针常量

未来印刷版本需要修改的地方

勘误36 P88页:第21行,ASP 应为 ASR
勘误37 P97页:第06行,[0, 32GB] 应为 [0, 4GB]。[0,4096]应为[0,4095]
勘误38 P95页:第09行,配图3-5,建议修改成32位的指令格式,与文中匹配
勘误39 P142:第11行,二级制代码 应修改为:二进制代码

后续的勘误,会陆续在我的博客上及时更新,欢迎大家积极反馈和指正~
阅读过程中有什么疑问,或者发现什么错误,也可以加入嵌入式技术QQ群:398294860,一起探讨、交流。
更多嵌入式视频教程,可访问作者淘宝店:嵌入式视频教程:王利涛老师个人店

一线原厂驱动开发经验,专门为嵌入式精心打造的嵌入式进阶视频教程,详情请点击:王利涛老师个人店