网卡DM9000裸机驱动开发详解
DM9000A 开始预取 SRAM 中数据到内部数据缓冲中 483~494行 从地址DM9000_DATA中读取数据,从SRAM中读取的第一个数据的bit必须是1,否则出错 500行 通过函数指针db->rx_status读取网卡的状态和接收到的数据包的长度 506行 通过函数指针db->inblk从网卡中读取数据 527行 通过函数NetReceive提交给上层协议栈。
C语言头文件揭秘
写了几年 C 语言,你真懂头文件吗?从底层逻辑到大型架构,彻底扒开 #include 的底裤!很多初学者刚学C语言时,写下的第一行代码往往是 #include 。老师告诉你“照抄就行,不写会报错”,于是大家就这么背了下来。
极墨 (软件设计篇):10_MuPDF 集成:三次返工
上一篇结尾说「下一篇开始动 MuPDF」。这一篇就是它,而且比预想的热闹:功能本身一次就跑通了,真正来回折腾的是渲染观感——先是字看不清,然后是图片要纯黑白,再然后是左右边距要不要裁。最后一条走了个来回,代码全部退回。把这段过程记下来,包括我自己论证站不住的地方。
孟子“道性善”的内在理路及思想意义
孟子“道性善”的内在理路及思想意义 梁涛 孟子“道性善”是当时思想界的一件大事,而如何理解孟子性善论也是当今学术界颇有争议的问题。
嵌入式C语言关键字:static、volatile、const、extern 深度解析
在嵌入式开发中,static、volatile、const、extern 绝非简单的语法糖,它们直接决定了变量在内存中的存储位置、生命周期、可见性以及编译器的优化行为。理解这四个关键字的底层逻辑,是区分“会写代码”与“懂系统”的分水岭。
链接器是如何一步步发明出来的
从绝对地址到延迟绑定:链接器如何被软件规模“逼”出来。很多人写代码都见过undefined reference和multiple definition。刚看到时,容易以为是编译器坏了。其实这背后牵着链接器的历史。
C 语言大坑:声明和定义到底有什么区别
写了几年C语言,你真分清“声明”和“定义”了吗?编译器底层逻辑深度解析!很多C语言开发者在写代码时,对“声明(Declaration)”和“定义(Definition)”往往一知半解。