内核烧写,超级终端无法输入命令
本人刚开始学习linux嵌入式开发,有一块板子,里面已经烧好了内核,为了学习,我用SAM-BA软件进行檫除,然后重新烧写。前面一直成功,直到固化内核和文件系统,再实行uboot启动设置后,进行复位板子时失败了。这是我就终端重新连接,结果出现终端没有任何显示,也无法敲入命令。我尝试着插拔电源,终端出现 pRomBOOT>“p”有时是其他字符但仍然不能输入任何命令
作者: songxudong1020 发布时间: 01-14
置疑: 我觉得在linux的slub分配器中,一个内存缓存的BUG
对于SLUB不熟的同学可以先跳过了,涉及的东西比较细致。简单来说SLUB的结构是N(CPU数)个kmem_cache_cpu,和一个kmem_cache_node组成。其中kmem_cache_cpu的目的是为了从技术层面上提高CPU命中缓存,以及在同一个页面上不出现一个脏的内存(即不同时被多个CPU持有)。我把这个实现机制手工在WINDOWS下实现了一套,在开启多个kmem_cache_cpu
作者: lin_style 发布时间: 01-14
修改代码段实现函数拦截
本帖最后由瀚海书香于2011-01-1414:53编辑一般来说函数存放在代码段,是不允许修改的。那么有什么发放可以修改现有函数的执行代码呢?比如说有func1(),func2()两个函数,现在想把func1的开始部分修改为(jmpfunc2-func1-5),也就是说执行func1的时候,跳转到func2处执行。但是func1的代码在代码段,是不可写的。有什么方法可以修改代码段
作者: 瀚海书香 发布时间: 01-14
借助虚拟机显示OOPS信息
在调整内核模块的时候,oops信息非常重要,但是如果用显示器显示,信息一闪而过。以前的做法一般是采用双宿主机开发模式,将目标机器的内核输出在bootloader中重定向到串口。然后在宿主机上使用超级终端捕获文字输出。现在使用单主机开发模式,目标平台是虚似机(我是用vmware),发现这个问题在虚拟机平台来做就太简单了。1、在虚拟机中增加一个串口设备,并设置将其输出到文件;2、修改bootl
作者: 独孤九贱 发布时间: 01-14
用户空间内存可不可以用作DMA缓存?
我在用户空间malloc一段内存,假设这段内存不大于4K(目的是保证无力地址的连续性),如果可以得到这段内存的物理地址并且不可能被交换出去,那么,这段内存可不可以用作DMA的缓存?另外,我以前看到有人写过一个得到用户空间内存物理地址的一个函数,但是找不到了,哪位大侠给发一个。真做项目的时候发现很多细节光看书是不行的。非常感谢啊!
作者: liujunwei1234 发布时间: 01-13
关于NETFILTER进行的网关的流量控制。
关于NETFILTER进行的网关的流量控制。我之前用NF编写了一个网络开关,可以控制内网的哪些IP地址(暂不讨论IP地址伪造问题)可以访问外网,哪些不能访问外网,但是有一个极大的问题是,可以访问外网的机器可以做成代理服务器,共享给那些没有外网权限的机器使用。这会成为一个大问题。但是既然能访问外网的IP和不能访问外网的IP在一个网络里面,杜绝代理肯定是不能了,所以我想控制每个有外网权限的机器
作者: 程序c 发布时间: 01-13
内核代码中的汇编小问题。。
.code16.globlbegtext,begdata,begbss,endtext,enddata,endbss.textbegtext:.databegdata:.bssbegbss:.text。start: jmp trampoline#Th
作者: space006 发布时间: 01-13
关于netif_receive_skb中的一个链表处理问题
在netif_receive_skb中有一段代码是将receive的数据包clone一份交给ptype_all的链,代码如下:……pt_prev=NULL;list_for_each_entry_rcu(ptype,&ptype_all,list){ if(!ptype->dev||ptype->dev==skb->
作者: 瀚海书香 发布时间: 08-21
一个关于守护进程的问题
#include<stdio.h>#include<unistd.h>#include<sys/resource.h>#include<stdlib.h>intdaemon_init(void)
作者: flike 发布时间: 01-12