- 博客(13)
- 资源 (4)
- 收藏
- 关注
原创 Zynq cap调试总结
遇到的问题和解决方法1、ramdisk启动之后,必须先ls一下,才能open文件。问题定位方法:gdb,显示栈。问题定位:open函数会调用到内核中的kunmap函数,而kumap函数不能在中断上下文中调用(在kunmap函数中有BUG_ON( in_interrupt ( )) ;) ,而我们 f ilp_open正是在中断上下文中调用的,因此出错。解决方法:启动内核线程,来op
2012-09-12 10:27:43
1119
原创 Ubuntu ppa 安装软件 和 删除ppa源
1、添加ppa源以便安装软件添加一个PPA源sudo add-apt-repository ppa:user/ppa-name比如:安装Ubuntu tweak 需要添加的ppa源sudo add-apt-repository ppa:tualatrix/ppa2、安装软件添加完ppa源,执行:sudo apt-get updatesudo apt-get
2012-09-12 10:26:28
1214
原创 arm9 ucos 移植
1、 ucos系统一般运行在svc模式下2、 需要初始化两个栈,IRQ mode,SVCmode,一般先初始化IRQ模式的栈,在初始化SVC模式的栈,因为在初始化svc堆栈后,一般直接跳转到__main,这样我们所谓的用户态代码和ucos代码都运行在svc,这样的好处就是我们可以通过操作cpsr来disable 中断,没有了中断就没有了线程的切换,可以用于保护共享数据。3、 Scat
2012-06-15 17:53:35
1416
翻译 cache 浅析
1. CacheCache一词来源于法语,其原意是“藏匿处,隐秘的地方”,而自从被应用于计算机科学之后,就已经成为了英语中的一个计算机体系结构专有名词。Sun Microsystems的前首席科学家Billy Joy,作为BSD unix,csh,vi,NFS,java,TCP/IP等的发明者,他曾经说过,在计算机科学领域,如果没有了cache的发明,其他的一切发明都将失去意义。而正是他,
2012-06-15 17:49:05
2353
原创 ucos 软定时器
一、定时器的建立: 定时器是在我们的应用程序中建立的,OS_TMR *OSTmrCreate (INT32U dly, INT32U period, INT8U opt,
2012-04-23 18:47:23
2306
原创 spi flash 驱动
抓狂的spi终于弄完了,想死的心都有了,本来不想到这么麻烦,大意了。 一、都不知道从何说起了,先说说我们的spi的“变态点”吧。 变态点一:四种模式(CONTROL0寄存器TMOD域),一个简单的spi协议还得搞出四种模式,好智能啊。变态点二:CS信号和SCLK信号不能单独受控,只能由写操作来控制,好智能啊。变态点三:我把你前两点的脾气摸到了之后,我该能控制
2012-04-12 19:01:28
2267
原创 mips 精确异常和延时槽
一、非精确异常在多发射乱序执行的流水线 CPU 上,从指令进入流水线到异常事件的发生,期间要经过若干流水级,此时 PC 的值已指向其后的某条指令,在实现非精确异常的 CPU 上就把此时的 PC 值作为引起异常指令的所在(为了表达的方便,记为 eptr)。简单地说就是 eptr 的指向,并非真正的引起异常的指令之所在,而是其后面的某条指令所在。二、精确异常简单地说就是
2012-04-08 10:37:03
2287
原创 qemu迁移
迁移是qemu中支持的,libvirt只是封装好命令并传递给qemu的监控模块。1、qemu中使用方法:在server端,在启动qemu的命令行中加入-incoming tcp:0:4444(4444为端口)参数,启动后可以应用netstat -apn 命令查看,4444端口是不是在监听。在client端,启动qemu后(sdl模式下), 使用ctrl+alt+2切换到监视端口,输入命
2012-04-08 10:35:21
1004
原创 Debian 系统root用户自动登录
Debian默认不允许root登录,所以修改之。(1)让Debian以root登录1)、首先修改gdm3的设定文件(/etc/gdm3/deamon.conf),在[security]字段后面追加如下一行:AllowRoot= ture2)、最后修改gdm3的登录pam文件#vi /etc/pam.d/gdm3将auth required pam_succeed_i
2012-04-08 10:34:08
3555
原创 qemu kvm 内存虚拟化
一、qemu中物理内存的注册cpu_register_physical_memory调用cpu_notify_set_memorycpu_notify_set_memory调用kvm_client_set_memorykvm_client_set_memory调用kvm_set_phys_memkvm_set_phys_mem调用kvm_set_user_memory_region
2012-04-08 10:28:39
1905
原创 mips 异常处理和进程切换
一.内核栈每个进程拥有一个内核栈,调度切换至一个新进程时,会根据task_struct->stack(struct thread_info 结构体类型) 的值设置*kernelsp(当前正在运行进程之内核栈栈顶),将kernelsp的值设置为 task_struct->stack + THREAD_SIZE - 32(MIPS 下,使用set_saved_sp 宏来完成设置)。
2012-04-08 10:27:05
1168
原创 xmodem 协议
1.Xmodem协议是什么? XMODEM协议是一种串口通信中 广泛用到的异步文件传输协议。分为标准Xmodem和1k-Xmodem两种,前者以128字节块的形式传输数据,后者字节块为1k即1024字节,并且 每个块都使用一个校验和过程来进行错误检测。在校验过程中如果接收方关于一个块的校验和与它在发送方的校验和相同时,接收方就向发送方发送一个确认字节 (ACK)。由于Xmodem需要对每个块
2012-04-05 21:24:09
1080
原创 ARM cortex-M3 异常处理分析
一、进入异常之前处理器可能的状态有:1. handler2. 线程,MSP3. 线程,PSP 二、产生异常时:1、 有一个压栈的过程,产生异常时使用PSP,就压入到PSP中,产生异常时使用MSP,就压入到MSP中2、 会根据处理器的模式和使用的堆栈,设置LR的值(当然设置完的LR的值再压栈) 三、异常返回时:根据L
2012-04-05 19:59:25
2066
arm v5 权威手册
2012-06-14
802.11n 协议
2012-04-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人