上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页

2012年12月24日

linuxn内核调试方法

摘要: kdb:只能在汇编代码级进行调试; 优点是不需要两台机器进行调试。 gdb:在调试模块时缺少一些至关重要的功能,它可用来查看内核的运行情况,包括反汇编内核函数。 kgdb:能很方便的在源码级对内核进行调试,缺点是kgdb只能进行远程调试,它需要一根串口线及两台机器来调试内核(也可以是在同一台主机上用vmware软件运行两个操作系统来调试)printk() 是调试内核代码时最常用的一种技术。在内核代码中的特定位置加入printk() 调试调用,可以直接把所关心的信息打打印到屏幕上,从而可以观察程序的执行路径和所关心的变量、指针等信息。 Linux 内核调试器(Linux kernel de... 阅读全文

posted @ 2012-12-24 16:43 追寻前人的脚步 阅读(1892) 评论(0) 推荐(0) 编辑

2012年12月19日

Quartus中仿真时出现no simulation input file assignment specify 解决方法 (转载)

摘要: 今天使用quartusII做了一下功能仿真,但是文件出现了问题 Error: Run Generate Functional Simulation Netlist (。。。) to generate functional simulation netlist for top level entity bmg_control before running the Simulator (quartus_sim)在网上查了一下又解决的方法,在此转载此文长:翻译成中文就是仿真文件没有被指定,要仿真的话先要建一个仿真文件:file -> new -> 选择Other file选项卡 -> 阅读全文

posted @ 2012-12-19 12:58 追寻前人的脚步 阅读(474) 评论(0) 推荐(0) 编辑

2012年12月15日

ret retf iret

摘要: RET, and its exact synonym RETN, pop IP or EIP from the stack and transfer control to the new address. Optionally, if a numeric second operand is provided, they increment the stack pointer by a further imm16 bytes after popping the return address.ret:也可以叫做近返回,即段内返回。处理器从堆栈中弹出IP或者EIP,然后根据当前的CS:IP跳转到新的 阅读全文

posted @ 2012-12-15 18:22 追寻前人的脚步 阅读(961) 评论(0) 推荐(1) 编辑

2012年12月14日

当段限长是0的时候

摘要: 当段限长为0的时候,代码段的长度并不是零,而是1个长度单位。长度单位取决于颗粒度。当颗粒度为0的时候,段的长度单位是字节,限长0代表段的长度是1字节,即段中可以存储1个字节的内容当颗粒度为1的时候,段的长度单位是4KB,限长0代表段的长度是4KB,即段中可以存储4KB的内容抽象出,当段限长为n的时候,段的长度是(n+1)个长度单位。 阅读全文

posted @ 2012-12-14 17:59 追寻前人的脚步 阅读(299) 评论(0) 推荐(0) 编辑

2012年12月4日

codeblocks opengl的配置

摘要: GLUT 3.7下载地址:http://www.opengl.org/resources/libraries/glut/glutdlls37beta.zip下载下来的 GLUT压缩包有 glut.dll, glut.h, glut.lib, glut32.dll, glut32.lib将glut.h 放在 MinGW\include\GL 下将glut.lib, glut32.lib 放在 MinGW\lib 下将glut.dll, glut32.dll 放在windows\System32 下 (有人说放在 windows\SysWOW64 下,我之前测试的时候两个都放了)新建Porjec. 阅读全文

posted @ 2012-12-04 13:10 追寻前人的脚步 阅读(1782) 评论(0) 推荐(0) 编辑

2012年11月18日

exit和return

摘要: 虽然原来也曾看过exit和return的区别,一直都认为这两者差不多,今天在写程序的时候突然发现原来差很多,唉,还是多写点程序好啊,奈何,曾认为自己写代码的水平已不是很差了,所以就写的较少了,看来还是不行的啊return与exit的区别是什么?exit()是一个函数,结束一个进程,它将删除进程使用的内存空间,同时把错误信息返回父进程,在父进程中wait系统调用将接受到此返回信息。return返回函数值,是关键字在main函数中我们通常使用return (0);这样的方式返回一个值。 但这是限定在非void情况下的也就是void main()这样的形式。 exit()通常是用在子程序中用来终.. 阅读全文

posted @ 2012-11-18 19:33 追寻前人的脚步 阅读(252) 评论(0) 推荐(0) 编辑

linux 定时器 setitimer

摘要: #include <stdio.h>#include <unistd.h>#include <signal.h>#include <string.h>#include <sys/time.h>#include <errno.h>void PrintMsg(int Num){ printf("%s\n", "Hello World"); return;}int main(int argc, char* argv[]){ signal(SIGALRM, PrintMsg); struct 阅读全文

posted @ 2012-11-18 16:46 追寻前人的脚步 阅读(241) 评论(0) 推荐(0) 编辑

2012年11月11日

linux0.12 ---memory.c

摘要: free_page()释放物理地址addr处的一页内存本帖最后由 Gen216ius 于 2011-8-14 21:26 编辑具体解读对着图片看,图片的英文就是代码的变量,注意这里的from是线性地址int free_page_tables (unsigned long from, unsigned long size){ unsigned long *pg_table; unsigned long *dir, nr; if (from & 0x3fffff)// 要释放内存块的地址需以4M 为边界。 panic ("free_page_tables calle... 阅读全文

posted @ 2012-11-11 09:32 追寻前人的脚步 阅读(302) 评论(0) 推荐(0) 编辑

2012年11月4日

一些基础知识

摘要: 1typedef int (*fn_ptr)(); (无内容)typedef int (*funcptr)();// funcptr is synonym for "pointer // to function returning int"funcptr table[10]; // Equivalent to "int (*table[10])();"table[]函数指针数组,每个元素都保存一个函数的入口比如int fun();table[1] = fun;int i = table[1]( );即调用了一个函数fun,并将返回值赋予i。2ret 和i 阅读全文

posted @ 2012-11-04 15:01 追寻前人的脚步 阅读(161) 评论(0) 推荐(0) 编辑

嵌入式汇编+系统调用

摘要: init进程调用的init函数1、setup((void*)&drive_info);a.setup函数用的是main.c中Line 25的inline _syscall1(int,setup,void *,BIOS),_syscall1()函数调用来自于include/unistd.h中的Line 1461#define_syscall1(type,name,atype,a)\2typename(atypea)\3{\4long__res;\5__asm__volatile("int$0x80"\6:"=a"(__res)\7:"0& 阅读全文

posted @ 2012-11-04 10:29 追寻前人的脚步 阅读(335) 评论(0) 推荐(0) 编辑

上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页

导航