- 博客(150)
- 资源 (5)
- 收藏
- 关注
原创 Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案
Android9~Android13 某些容量SD卡被格式化为内部存储时容量显示错误问题的研究与解决方案分析Android11 系统对于EMMC/UFS作为内部存储、SD卡被格式化为内部存储、SD卡/U盘被格式化为便携式存储的不同处理
2024-02-05 23:38:29
2354
原创 搭建QCM6125 UEFI XBL开发环境,解决由于GCC版本导致编译失败等问题
搭建QCM6125 UEFI XBL开发环境,解决由于GCC版本导致编译失败等问题
2024-02-02 11:25:21
640
原创 解决QCM6125 UEFI XBL开机Logo文件太大导致XBL编译失败的问题
解决QCM6125 UEFI XBL开机Logo文件太大导致XBL编译失败的问题
2024-01-31 10:12:55
1162
转载 ARM的异常处理过程分析(异常向量/工作模式)
近来翻了翻uC/OS-II官网给出来的ARM7-ARM9移植手册(AN-104),分析了在ARM中移植的问题,想想从来没有认真的学习过ARM的汇编,趁着这个机会复习复习吧。其实底层的东西才是创造力的心脏。其中的移植代码中存在的很多问题比如中断的关闭和开启,任务级别的情景切换,中断到任务的情景切换都是我们在平时移植中讲到,我也不在此强调了。在官网中提供的移植过程中存在异常处理机制,这个本不是在移
2015-03-05 15:37:53
8498
原创 [UBOOT] AM335x bootm trace(u-boot-2011.09)
do_run{ arg = getenv (argv[i]));////run的参数从环境变量中获得 run_command (arg, flag);}bootcmd=run nand_boot nand_boot=1.echo Booting from nand ...; 2.run nand_args; nand_args=1.run b
2015-02-27 15:24:12
1497
原创 [UBOOT] AM335x env trace(u-boot-2011.09)
1.初始化:初始化env_htab,默认从nand flash中读取env分区中的结构体environment_s;如果没有saveenv,使用默认的default_environmentboard_init_f//board.c for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) { if ((*i
2015-02-27 15:14:34
1533
原创 [UBOOT] AM335x nand init/nand command trace(u-boot-2011.09)
nand_init();//nand.c nand_init_chip int board_nand_init(struct nand_chip *nand);//初始化nand_chip ti81xx_nand_switch_ecc(NAND_ECC_HW, 2); __ti81xx_nand_switch_ecc nand->ecc.byte
2015-02-11 15:38:23
2315
原创 ARM的位置无关码
PC相关,位置无关的指令:adr、b 位置无关码可以运行在非连接地址(基于PC) ldr Rn,Label arm指令 取值 位置无关 反汇编:相对于PC取Lable的值 ldr Rn,=Label 伪指令 取地址 位置相关 反汇编:将Label的地址(绝对地址)保存在一个编译期间确定的地址,
2015-01-08 10:01:22
1125
转载 ARM下书写位置无关的代码
目录(?)[+](以后应该再也不会写汇编了,将以前总结的东西发给大家参考)位置无关代码,即该段代码无论放在内存的哪个地址,都能正确运行。究其原因,是因为代码里没有使用绝对地址,都是相对地址。位置无关的写法:(1) B指令B指令接受一个相对地址,因此在汇编里用B跳转到一个标号时,实际编译的结果是一个相对跳转。相对地址有个范围限制,即目标不能太远,一般目
2015-01-08 09:30:20
621
原创 C语言中打印PC的值
void print_pc(){ unsigned int pc_val; __asm("mov %[result],pc":[result]"=r"(pc_val)); printf("pc=0x%x\n",pc_val);}
2015-01-08 09:17:15
1657
原创 [UBOOT] fix .rel.dyn relocations(u-boot-2011.09)
/* ldr pc, _undefined_instruction//位置无关,_undefined_instruction基于PC计算 _undefined_instruction: .word undefined_instruction//位置相关,undefined_instruction编译期间确定 Disassembly of section .text: 8
2015-01-08 08:34:57
2119
转载 [UBOOT]uboot的relocation原理详细分析
转自:http://blog.youkuaiyun.com/skyflying2012/article/details/37660265最近在一直在做uboot的移植工作,uboot中有很多值得学习的东西,之前总结过uboot的启动流程,但uboot一个非常核心的功能没有仔细研究,就是uboot的relocation功能。这几天研究下uboot的relocation功能,记录在此,跟大家共
2015-01-07 16:50:36
1272
原创 [UBOOT] AM335x 启动流程(u-boot-2011.09)
u-boot-2011.09am335x启动流程:1.rom code(详见芯片手册)2.spl(Secondary Program Loader) 根据spl/u-boot-spl.lds<===arch/arm/cpu/armv7/omap-common/u-boot-spl.lds: arch/arm/cpu/armv7/start.o (.text) _start:
2015-01-06 09:36:46
6972
转载 ARM GCC Inline Assembler Cookbook
转载自:http://www.ethernut.de/en/documents/arm-inline-asm.htmlAbout this documentThe GNU C compiler for ARM RISC processors offers, to embed assembly language code into C programs. This cool fe
2015-01-04 14:55:16
821
转载 解决project中某个文件被remove后仍然存在的问题
Source Insight的使用技巧-清除以前的历史记录看一些内核代码(LWIP之类的),不用Source Insight来看,那真得跳楼了。问题:当SourceInsight整个目录的路径更改之后(比如就是把以前备份的东西那过来用),jump的时候经常会出现一些历史的文件让你jump,一不小心就jump错地方了,然后在错的地方做修改,然后费了老大劲,才发现改的根本就不是当下
2014-12-29 10:12:42
1332
转载 AM335x启动流程(BootRom->MLO->Uboot)
http://blog.chinaunix.net/uid-28458801-id-3486399.html参考文件:1,AM335x ARM Cortex-A8 Microprocessors (MPUs) Technical Reference Manual.pdf;2,am3359.pdf;1,am335x的cpu上电后,会跳到哪个地址去执行?答:
2014-12-11 08:06:29
29616
原创 [UBI]为AM335x uboot 移植UBI UBIFS功能
/* lc add for ubi */#define CONFIG_CMD_UBI#define CONFIG_CMD_UBIFS#define CONFIG_CMD_MTDPARTS#define CONFIG_MTD_DEVICE#define CONFIG_MTD_PARTITIONS#define CONFIG_RBTREE#define CONFIG_LZO
2014-11-06 10:09:12
4656
原创 Total Commander 配置
1.使用拖拽进行文件的复制和替换,而不进行提示:配置->选项->其他 需要确认的操作中,勾掉拖放2.使选中的文件更醒目:颜色->勾选 使用反色光标3.文件定位:快速搜索-> 选择字母(显示快速搜索框)。在按下ctrl+S图标时,只显示选中的文件4.重命名 F6
2014-10-28 11:46:21
695
原创 [UBI]mkfs.ubifs ubinize 工具编译
1. cd zlib-1.2.8/ ./configure --prefix=../install make make install 2. cd lzo-2.08/ ./configure ac_default_prefix=/contec/liuchang/am335x/ubi_tools/in
2014-10-21 08:12:28
3713
原创 在Linux 应用层 基于i2c-dev.h 实现i2c读写
/* i2c-dev.h - i2c-bus driver, char device interface Copyright (C) 1995-97 Simon G. Vogl Copyright (C) 1998-99 Frodo Looijaard This program is free software; you can redistribute it
2014-10-20 15:00:28
8923
转载 source insight 中使用vim
Source Insight看代码时比较方便,而且它的代码自动完成功能比vim+ctags+cscope好用的多,可是我认为写代码时,Source Insight的功能却比不上vim。我的设定是:在Source Insight中按F12调用gvim,打开对应文件,跳转到对应的行。以下是实现步骤:1.Source Insight中,Options->Custom Commands..
2014-10-20 14:38:45
4307
原创 为lpc3250 uboot-1.3.3 添加i2c命令(imd,imw,iprobe等)
#include #ifdef CONFIG_HARD_I2C#ifdef CONFIG_LPC3250_I2C#include #include #include #include /* I2C register definitions */#define I2C1_BASE_ADDR 0x400A0000#define I2C2_BASE_ADD
2014-10-20 13:13:56
1629
原创 kobject_uevent,uevent_helper,/sys/kernel/uevent_helper,/proc/sys/kernel/hotplug
class_device_create class_device_register class_device_add kobject_uevent(&class_dev->kobj, KOBJ_ADD); kobject_uevent_env action_string = action_to_string(action); uevent_ops->fil
2014-04-29 17:54:26
2150
转载 Ubuntu系统SSD硬盘优化全记录
http://www.linuxidc.com/Linux/2012-09/70519.htm硬件改造固态硬盘(64G,2.5寸,SATA3.0)装入原先的硬盘位置,购买一个光驱位硬盘托架,将机械硬盘(500G)装入原先的光驱位置。这几种材料都已经很常见,笔记本外观不会有什么瑕疵。系统安装1.下载Ubuntu光盘镜像 http://www
2014-04-24 21:56:27
1572
原创 总线设备驱动模型:bus->match,driver->probe
注:支持bus device driver模型 都遵循这套流程platform_driver 注册时,如何遍历platform_bus_type总线上platform_device链表,并且调用platform_bus_type的match函数进行匹配,匹配成功后如何调用platform_driver 的probe函数-----------------dev
2014-04-19 18:35:26
1613
转载 关于platform_driver 是如何匹配 platform_device的和如何调用到platform_driver中的probe函数的研究
http://blog.youkuaiyun.com/adc0809608/article/details/7289285 在linux中platform平台驱动又三大部分组成,第一是bus、第二是驱动、第三是设备。 第一总线也就是platform_bus,总线也是一种特殊的device,到底层下面还是要调用device_register来注册该总线设备,然后是用来注册
2014-04-19 17:52:38
636
转载 input子系统详解
http://blog.youkuaiyun.com/ylyuanlu/article/details/6704744Input子系统详解一.Input子系统架构Linux系统提供了input子系统,按键、触摸屏、键盘、鼠标等输入都可以利用input接口函数来实现设备驱动,下面是Input子系统架构:Input子系统架构二.Input系统的组成输入子系统由驱
2014-03-25 19:05:09
628
转载 linux内核input子系统解析
http://www.embedu.org/Column/Column289.htm作者:刘老师,华清远见嵌入式学院讲师。Android、X windows、qt等众多应用对于linux系统中键盘、鼠标、触摸屏等输入设备的支持都通过、或越来越倾向于标准的input输入子系统。因为input子系统已经完成了字符驱动的文件操作接口,所以编写驱动的核心工作是完成inp
2014-03-25 18:42:14
445
转载 Linux设备驱动之semaphore机制
Linux设备驱动之semaphore机制在Linux系统中,信号号是一种重要的加锁机制,特别在互斥型资源中,semaphore更能很好的工作。1: semaphore结构体定义在Linux2.6.35内核中,semaphore的实现机制与以前的版本一点不同,在其中去除了DECLARE_MUTEX_LOCKED这个初始化互斥宏定义,但是,又添加了一个特别重要的函数,down_killa
2014-03-14 12:01:23
814
转载 Linux 原子操作
所谓原子操作,就是该操作绝不会在执行完毕前被任何其他任务或事件打断,也就说,它的最小的执行单位,不可能有比它更小的执行单位,因此这里的原子实际是使用了物理学里的物质微粒的概念。 原子操作需要硬件的支持,因此是架构相关的,其API和原子类型的定义都定义在内核源码树的include/asm/atomic.h文件中,它们都使用汇编语言实现,因为C语言并不能实现这样的操作。
2014-03-14 10:36:35
608
原创 linux驱动的异步通知(kill_fasync,fasync)---- 驱动程序向应用程序发送信号
应用程序#include #include #include #include #include #include #include #include #include /* fifthdrvtest */int fd;//信号处理函数void my_signal_fun(int signum){ unsigned char key_val; read
2014-03-13 19:32:40
23576
转载 fcntl使用
and_ttfcntl使用功能描述:根据文件描述词来操作文件的特性。#include #include int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, int cmd, struct flock *lock);
2014-03-13 19:07:53
815
转载 Linux系统exec命令
shell的内建命令exec将并不启动新的shell,而是用要被执行命令替换当前的shell进程,并且将老进程的环境清理掉,而且exec命令后的其它命令将不再执行。 因此,如果你在一个shell里面,执行exec ls那么,当列出了当前目录后,这个shell就自己退出了,因为这个shell进程已被替换为仅仅执行ls命令的一个进程,执行结束自然也就退出了。为了避免这个影响我们的使用,一般将exe
2014-01-15 19:49:14
9289
转载 __attribute__ 之weak,alias属性
Weak Alias 跟 Weak Reference 完全没有任何关系,不过是我在看到 Weak Reference 的时候想到的而已。Weak Alias 是 gcc 扩展里的东西,实际上是函数的属性。这个东西在库的实现里面可能会经常用到,比如 glibc 里面就用了不少。抄录一段 gcc 手册里面的话解释下函数属性是干啥的,In GNU C, you declare
2014-01-09 16:46:27
949
转载 解密module_init,module_exit
include/linux/init.h在Linux底下写过driver模块的对这个宏一定不会陌生。module_init宏在MODULE宏有没有定义的情况下展开的内容是不同的,如果这个宏没有定义,基本上表明阁下的模块是要编译进内核的(obj-y)。1.在MODULE没有定义这种情况下,module_init定义如下:#define module_init(x) __i
2014-01-09 16:32:52
1905
转载 linux中__attribute__使用详解
GNC CC 是一个功能非常强大的跨平台 C 编译器,它对 C 语言提供了很多扩展,这些扩展对优化、目标代码布局、更安全的检查等方面提供了很强的支持。本文把支持 GNU 扩展的 C 语言称为 GNU C。Linux 内核代码使用了大量的 GNU C 扩展,以至于能够编译 Linux 内核的唯一编译器是 GNU CC,以前甚至出现过编译 Linux 内核要使用特殊的
2014-01-08 22:33:25
2003
HyperTerminaEnglishANSI 超级终端中文版_可显示图标.7z
2011-11-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人