CSDN博客迁移至博客园 综合对比CSDN和博客园的易用性和简洁性,决定将CSDN博客迁移至博客园,新博客链接为 https://www.cnblogs.com/tinylaker/ ,CSDN博客不再更新使用。
am3354 SGX移植续 am3354 SGX移植续概要问题解决方法概要本文接上一篇文章《am3354 SGX移植》,记录下实际开发过程中遇到的问题。问题具体移植步骤可以参考上篇文档,这里说下开发中遇到的问题。在运行./335x-demo时,提示omaplfb: OMAPLFBInitFBDev: Device 0: Unknown FB format错误。# ./335x-demo0x10205releas...
《嵌入式linux内存使用与性能优化》读书笔记 嵌入式linux内存使用与性能优化–读书笔记前言本书的重点分为系统内存和性能优化,前4章着重内存使用,尽量减少进程的内存使用量,定位和发现内存泄漏;后5章着重与如何让系统性能优化,加快执行速度。嵌入式linux内存使用与性能优化–读书笔记前言第1章 内存的测量第2章 进程内存优化第3章 系统内存优化第4章 内存泄漏第5章 性能优化的流程第6章 进程启动速度第7章...
am3354 SGX移植 am3354 SGX移植am3354 SGX移植什么是SGX编译SDK测试验证什么是SGX官方手册上说明TI am3354使用POWERVR SGX530图形核心,加速2D/3D图形应用。那么如果要使用3D加速,就必须基于SGX技术,使用视频加速需要Opengl ES2.0,需要调用SGX驱动。而SGX core并没有包含在ARM core中,但是它的Gr...
AM3354 CPSW网卡驱动 经过两周的调试,终于初步实现网卡的发送功能。在这里参考了uboot的beaglebone网卡驱动和《tcp/ip详解卷二》1、在前几篇博文中,讲解了网卡的mdio初始化过程,那么网卡lan8710a是如何与am335x处理器通信的呢?首先看一张连接图:我们都知道osi七层协议,最底下的是物理层和数据链路层,也就是mac和phy。有一部分处理器是自带mac层,也就是只需要pyh网卡一...
如何使用git获取linux内核代码仓库 如何使用git获取linux内核代码仓库目录用 [TOC]来生成目录:如何使用git获取linux内核代码仓库目录下载指定分支获取分支log信息添加其他远程分支获取远程分支切换分支查看远程分支信息本篇文档在ubuntu 14.04使用[git][6]获取linux kernel stable源码,仓库地址可以查看官方地址https://git.k...
spin_lock, spin_lock_irq, spin_lock_irqsave的区别 kernel version: 2.6.26linux kernel代码中有很多自旋锁的使用场景,同时存在很多spin_lock的接口定义,那么怎么去区分这些接口的使用场景呢?首先来看spin_lock的实现:#define spin_lock(lock) _spin_lock(lock)void __lockfunc _spin_lock(spinlock_t *lock){
TI-AM335x uboot分析 最近手头有一块AM335x的开发板,之前没有玩过TI A8的板子,所以想借由这块开发板了解下TI的芯片。在TI的官网上找到了这款开发板的相关资料和SDK开发套件,真的很赞。首先来看芯片的启动部分: 一般的芯片启动流程都是Romcode –> BL1 –> BL2 –> Kernel –> User Image, TI的芯片也不例外,Romcode –> ML0(SPL) –> uboot.
使用openjtag烧写s3c6410 手上的6410开发板闲置很长时间了,最近重新拾起来玩玩。因为换了新电脑所以很多编译环境也要重新搭,所以使用crosstool-ng重新做好工具链。假设开发板的flash上没有任何程序,如果需要烧写flash的话需要借助一些工具。 下面介绍下openjtag的烧录裸板的过程,ubuntu环境下需要使用openocd,openocd配置脚本,telnet,minicom1.打开终端,输入sudo op
通过git获取u-boot 可以查找u-boot官网,通过命令行使用git clone git://git.denx.de/u-boot.git u-boot远程克隆一个版本库,然后使用使用git tag查看release tag版本信息再使用git checkout “tag"获取需要的版本
SDRAM Timing理解 使用sdram需要对soc sdram controller进行配置,主要设置地址线,位宽和时序,其中sdram的位宽和行列地址比较容易理解。CLK:SDRAM工作的时钟,并且所有的输入信号都是在CLK的上升沿进行检测的,也就是说我们给SDRAM给的任何命令,一定要在CLK的上升沿保持稳定,以免SDRAM获取我们给出的命令时出现错误。CKE:时钟使能信号,是用来控制SDRAM内部时钟是否工作的一个信
align&&balignl代码对齐测试 align&&balignl代码对齐测试学习uboot代码时,发现启动代码中有`.balignl 16,0xdeadbeef`对齐,对于某些编译器来说,可能并不会代码对齐,所以需要进行手动对齐,否则就会出现编译报错。举例说明(以下代码并无实际含义).globl _start_start: b reset nop .byte 0xffreset: ldr r0,=0x
JTAG-SWD模式接线方法 Jink 与开发板的连接方式 JLINK的20针JTAG的1脚、20脚分别与开发板上JTAG口的1脚、20脚用杜邦线相连 JLINK的20针JTAG的7脚(JTMS)、9脚(JTCK)分别与开发上的JTAG口(JTAG 即SWDIO和SWCLK)的JTMS脚、JTCK脚用杜邦线相连
高速缓存cache **总结来自于文章《arm嵌入式系统开发--软件设计与优化》**cache是一种容量小,速度快的存储阵列,它位于主存和处理器核之间,保存着最近一段时间处理器涉及到的主存内容。在某些场合需要进行数据读取操作时,为了改善系统性能,处理器尽可能从cache中读取数据,而不从主存中获取数据,这主要是为了减小慢速存储器给处理器造成的访问瓶颈问题。
linux start kernel ## linux start kernel查找对应arm架构下的arch/arm/kernel/vmlinux.lds.S, 找到入口点ENTRY(stext),这个stext在arch/arm/kernel/head.S中定义,定义如下: .section ".text.head", "ax" .type stext, %functionENTRY(stext) msr
uboot简介 手上有个mtk mips架构的板子,刚好趁着这个机会重新学习下uboot。1.Makefile首先我们进入主Makefile,找到整个Makefile的目标文件,ALL = u-boot.srec uboot.bin System.mapu-boot.srec:u-boot$(OBJCOPY) ${OBJCFLAGS} -O srec $uboot.bin:u-boot$(
Netlink实现热拔插监控 新的Linux内核使用udev代替了hotplug作为热拔插管理,虽然有udevd管理热拔插,但有时候我们还是需要在应用程序中检测热拔插事件以便快速地处理,比如在读写SD卡的时候拔下SD卡,那么需要立即检测出该情况,然后结束读写线程,防止VFS崩溃。Netlink是面向数据包的服务,为内核与用户层搭建了一个高速通道,是udev实现的基础。该工作方式是异步的,用户空间程序不必使用轮询等技术来检测热拔
linux下热插拔事件的产生是怎样通知到用户空间,kobject_uevent_env之uevent_helper 热插拔(hotplug,打这个词的时候我常常想到热干面)不一定非要指类似U盘那样的插入拔出,此处的热插拔广义上讲,是指一个设备加入系统,内核如何通知用户空间。举个简单的例子,如果你的电脑中有块PCI网卡,针对该网卡的驱动程序以内核模块的形式被编译(obj-m),那么Linux系统在启动过程中是如何自动加载该网卡的驱动模块呢?大家都知道现在udev负责干这事,其实除了udev,还可以有其他的手法,你