Dream998

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2018年3月10日

摘要: 移植: 1. 编译 2. 解决错误 2.1 头文件不对:去掉或改名 2.2 宏不对:改名使用新宏 2.3 有些函数没有了:改名使用新函数 mount t nfs o nolock,vers=2 192.168.31.202:/work/nfs_root/fs_mini_mdev_new /mnt n 阅读全文
posted @ 2018-03-10 17:30 Dream998 阅读(355) 评论(0) 推荐(0)

摘要: 一、应用调试1:使用strace命令来跟踪系统调用 二、应用调试2:使用GDB来调试应用程序 编译gdb,gdbserver tar xjf gdb 7.4.tar.bz2 cd gdb 7.4/ ./configure target=arm linux make 把arm linux gdb复制到 阅读全文
posted @ 2018-03-10 17:28 Dream998 阅读(529) 评论(0) 推荐(0)

摘要: 网卡驱动程序框架: app: socket 若干层网络协议 纯软件 hard_start_xmit|| /\ \/ || netif_rx sk_buff 硬件相关的驱动程序(要提供hard_start_xmit, 有数据时要用netif_rx上报) 硬件 怎么写网卡驱动程序? 1. 分配一个net 阅读全文
posted @ 2018-03-10 17:23 Dream998 阅读(228) 评论(0) 推荐(0)

摘要: sound\soc\s3c24xx\s3c2410 uda1341.c s3c2410_uda1341_init driver_register(&s3c2410iis_driver); ..... s3c2410iis_probe / 使能时钟 / / 配置GPIO / / 设置S3C2440的I 阅读全文
posted @ 2018-03-10 17:22 Dream998 阅读(540) 评论(0) 推荐(0)

摘要: 驱动程序的调试 一. 打印: prink, 自制proc文件 UBOOT传入console=ttySAC0 console=tty1 1. 内核处理UBOOT传入的参数 console_setup add_preferred_console // 我想用名为"ttySAC0"的控制台,先记录下来 2 阅读全文
posted @ 2018-03-10 17:21 Dream998 阅读(555) 评论(0) 推荐(0)

摘要: 1. 点灯 2. 串口打印 3. JTAG调试器 3.1 命令行调试 3.2 源码级别的调试 前提 a. 程序必须已经重定位好,位于它的链接地址 a.1 如果程序的链接地址是SDRAM, 使用openocd初始化SDRAM a.2 使用arm linux gdb/arm elf gdb下载程序 b. 阅读全文
posted @ 2018-03-10 17:21 Dream998 阅读(141) 评论(0) 推荐(0)

摘要: 框架: app: open,read,write "1.txt" 文件的读写 文件系统: vfat, ext2, ext3, yaffs2, jffs2 (把文件的读写转换为扇区的读写) ll_rw_block 扇区的读写 1. 把"读写"放入队列 2. 调用队列的处理函数(优化/调顺序/合并) 块 阅读全文
posted @ 2018-03-10 17:20 Dream998 阅读(150) 评论(0) 推荐(0)

摘要: 测试2th~7th: 1. make menuconfig 去掉原来的触摸屏驱动程序 Device Drivers Input device support Generic input layer Touchscreens S3C2410/S3C2440 touchscreens make uIma 阅读全文
posted @ 2018-03-10 17:20 Dream998 阅读(453) 评论(0) 推荐(0)

摘要: 现象:把USB设备接到PC 1. 右下角弹出"发现android phone" 2. 跳出一个对话框,提示你安装驱动程序 问1. 既然还没有"驱动程序",为何能知道是"android phone" 答1. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"a 阅读全文
posted @ 2018-03-10 17:19 Dream998 阅读(413) 评论(0) 推荐(0)

摘要: class_device_create class_device_register class_device_add kobject_uevent(&class_dev kobj, KOBJ_ADD); kobject_uevent_env(kobj, action, NULL); // actio 阅读全文
posted @ 2018-03-10 17:18 Dream998 阅读(270) 评论(0) 推荐(0)

摘要: sudo apt get install autoconf sudo apt get install automake sudo apt get install libtool 编译: tar xzf tslib 1.4.tar.gz cd tslib ./autogen.sh mkdir tmp 阅读全文
posted @ 2018-03-10 17:17 Dream998 阅读(458) 评论(0) 推荐(0)

摘要: drivers\rtc\rtc s3c.c s3c_rtc_init platform_driver_register s3c_rtc_probe rtc_device_register("s3c", &pdev dev, &s3c_rtcops, THIS_MODULE) rtc_dev_prep 阅读全文
posted @ 2018-03-10 17:16 Dream998 阅读(259) 评论(0) 推荐(0)

摘要: 使用UBOOT体验NOR FLASH的操作(开发板设为NOR启动,进入UBOOT) 先使用OpenJTAG烧写UBOOT到NOR FLASH 1. 读数据 md.b 0 2. 读ID NOR手册上: 往地址555H写AAH //往地址5555H写AAH (MINI2440) 往地址2AAH写55H 阅读全文
posted @ 2018-03-10 17:15 Dream998 阅读(234) 评论(0) 推荐(0)

摘要: NAND FLASH是一个存储芯片 那么: 这样的操作很合理"读地址A的数据,把数据B写到地址A" 问1. 原理图上NAND FLASH和S3C2440之间只有数据线, 怎么传输地址? 答1.在DATA0~DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址, 问2. 从NAND FL 阅读全文
posted @ 2018-03-10 17:14 Dream998 阅读(418) 评论(0) 推荐(0)

摘要: drivers/input/input.c: input_init err = register_chrdev(INPUT_MAJOR, "input", &input_fops); static const struct file_operations input_fops = { .owner 阅读全文
posted @ 2018-03-10 17:13 Dream998 阅读(172) 评论(0) 推荐(0)

摘要: LCD驱动程序 假设 app: open("/dev/fb0", ...) 主设备号: 29, 次设备号: 0 kernel: fb_open int fbidx = iminor(inode); struct fb_info info = = registered_fb[0]; app: read 阅读全文
posted @ 2018-03-10 17:13 Dream998 阅读(451) 评论(0) 推荐(0)

摘要: i2c_add_driver i2c_register_driver driver driver.bus = &i2c_bus_type; driver_register(&driver driver); list_for_each_entry(adapter, &adapters, list) { 阅读全文
posted @ 2018-03-10 17:08 Dream998 阅读(219) 评论(0) 推荐(0)

摘要: 视频课程和源码的对应关系、下载方法请看"源码下载方法xxxxx.TXT" 视频和源码的对应关系:视频 源码第1课第1节_编写第1个Android应用程序实现按钮和复选框 APP_0001_LEDDemo v1,v2,v3第1课第2节_让Android应用程序访问C库 APP_0001_LEDDemo 阅读全文
posted @ 2018-03-10 17:04 Dream998 阅读(1655) 评论(0) 推荐(0)

摘要: 1. 框架1.1 硬件协议简介1.2 驱动框架1.3 bus-drv-dev模型及写程序a. 设备的4种构建方法a.1 定义一个i2c_board_info, 里面有:名字, 设备地址 然后i2c_register_board_info(busnum, ...) (把它们放入__i2c_board_ 阅读全文
posted @ 2018-03-10 17:03 Dream998 阅读(479) 评论(0) 推荐(0)

摘要: 第019课 I2C 第001节_I2C协议与EEPROM 课后作业:阅读AT24CXX芯片手册了解其他读写方法 第002节_S3C2440的I2C控制器 第003节_程序框架 第004节_I2C控制器编程_框架 第005节_I2C控制器编程_中断 第006节_EEPROM编程和测试代码 第007节_ 阅读全文
posted @ 2018-03-10 16:51 Dream998 阅读(100) 评论(0) 推荐(0)

摘要: 第018课 ADC和触摸屏 第001节_ADC硬件原理 第002节_ADC编程a. 初始化ADCb. 读数据c. 在串口上显示出来 第003节_电阻触摸屏硬件原理参考 韦东山<<嵌入式Linux应用开发完全手册>>第14章"ADC和触摸屏接口" 第004节_S3C2440触摸屏接口 第005节_触摸 阅读全文
posted @ 2018-03-10 16:50 Dream998 阅读(175) 评论(0) 推荐(0)

摘要: 第017课 LCD 第001节_LCD硬件原理参考文章:http://www.cnblogs.com/shangdawei/p/4760933.html 第002节_S3C2440_LCD控制器功能:a. 取数据 : 把framebuffer的地址告诉LCD控制器, bpp, 分辨率b. 发数据 : 阅读全文
posted @ 2018-03-10 16:49 Dream998 阅读(162) 评论(0) 推荐(0)

摘要: 第015课 NOR_Flash 第001节_NorFlash原理及硬件操作 使用UBOOT体验NOR FLASH的操作(开发板设为NOR启动,进入UBOOT)先使用OpenJTAG烧写UBOOT到NOR FLASH 1. 读数据md.b 0 2. 读IDNOR手册上:往地址555H写AAH往地址2A 阅读全文
posted @ 2018-03-10 16:48 Dream998 阅读(199) 评论(0) 推荐(0)

摘要: 第014课 异常与中断 1. 概念引入与处理流程 2. CPU模式(Mode)_状态(State)与寄存器7种Mode: usr/sys undefined(und) Supervisor(svc) Abort(abt) IRQ(irq) FIQ(fiq)2种State: ARM state Thu 阅读全文
posted @ 2018-03-10 16:47 Dream998 阅读(227) 评论(0) 推荐(0)

摘要: 第012课 内存控制器与SDRAM 1. 辅线1_硬件知识_内存接口概念 2. 辅线1_硬件知识_不同位宽设备的连接 3. 辅线1_硬件知识_时序图分析示例 4. 辅线1_硬件知识_SDRAM的设置 SDRAM参考文档: 高手进阶,终极内存技术指南——完整/进阶版 作业:把第11课实现的printf 阅读全文
posted @ 2018-03-10 16:46 Dream998 阅读(332) 评论(0) 推荐(0)

摘要: 第013课 代码重定位 1. 段的概念_重定位的引入 2. 链接脚本的引入与简单测试参考资料:Using LD, the GNU linkerhttp://ftp.gnu.org/old-gnu/Manuals/ld-2.9.1/html_mono/ld.html 3. 链接脚本的解析 4. 拷贝代 阅读全文
posted @ 2018-03-10 16:46 Dream998 阅读(124) 评论(0) 推荐(0)

摘要: 从零写一个用于裸机程序调试的printf函数 自己写c语言应用程序的时候,经常会使用printf来打印。 printf在是一个标准库函数,功能是:打印(变量、字符串)等等。 问题:能不能依据printf的原理,写一个简易的用于裸机程序调试的my_printf函数呢?好处:1)my_printf函数在 阅读全文
posted @ 2018-03-10 16:45 Dream998 阅读(2576) 评论(0) 推荐(0)

摘要: 串口(UART)的使用参考资料: <嵌入式LINUX应用开发完全手册>(韦东山著) 第11章、s3c2440芯片手册UART: Universal Asynchronous Receiver and Transmitter 1. 辅线1_硬件知识_UART硬件介绍 2. S3C2440 UART编程 阅读全文
posted @ 2018-03-10 16:44 Dream998 阅读(262) 评论(0) 推荐(0)

摘要: 掌握ARM芯片时钟体系 1. S3C2440时钟体系结构 2. 编程提高运行时钟作业:根据S3C440芯片手册MPLL的取值表格,修改程序让CPU运行于不同频率,观察LED闪烁速度 阅读全文
posted @ 2018-03-10 16:43 Dream998 阅读(288) 评论(0) 推荐(0)

摘要: book@www.100ask.org:/work/gcc_options/1th$ gcc --helpUsage: gcc [options] file...Options: --help Display this information -v Display the programs invo 阅读全文
posted @ 2018-03-10 16:42 Dream998 阅读(238) 评论(0) 推荐(0)

摘要: 复习一下C语言中的指针 /*第一步 : 所有变量都保存在内存中,我们打印一下变量的存储地址*//*第二步:所有变量都可以保存某些值,接着赋值并打印*/ /*第三步:使用指针:1)取值 2)移动指针*/ // &变量,目的:获得变量在内存中的地址 返回: 变量在内存中的起始地址 结论:指针变量所存储的 阅读全文
posted @ 2018-03-10 16:41 Dream998 阅读(189) 评论(0) 推荐(0)

摘要: gcc和arm-linux-gcc的常用选项 gcc的使用方法:gcc [选项] 文件名 gcc常用选项: -v:查看gcc编译器的版本,显示gcc执行时的详细过程 -o <file> Place the output into <file> 指定输出文件名为file,这个名称不能跟源文件名同名 - 阅读全文
posted @ 2018-03-10 16:41 Dream998 阅读(1149) 评论(0) 推荐(0)

摘要: 第1个ARM裸板程序及引申 1. 辅线1_硬件知识_LED原理图 2. 辅线1_硬件知识_S3C2440启动流程与GPIO操作 3. 编写第1个程序点亮LED 4. 汇编_机器码_C语言作业:修改led_on.S点亮LED2直接修改led_on.bin点亮LED2 5. 辅线2_编程知识_进制 6. 阅读全文
posted @ 2018-03-10 16:40 Dream998 阅读(185) 评论(0) 推荐(0)

摘要: 名词解释:gcc gcc是linux系统下主要的编译软件, gcc的全称是GNU编译器套件(GNU Compiler Collection), 除了可以编译c语言开发的程序外,还可以开发C++、Java等多个语言的程序。 GCC的初衷是为GNU操作系统专门编写的一款编译器。 使用gcc的原因:功能强 阅读全文
posted @ 2018-03-10 16:39 Dream998 阅读(1198) 评论(0) 推荐(0)

摘要: 开发板熟悉与体验 第001节_开发板接口介绍与串口连接 第002节_使用eop烧写裸板程序 第003节_eop常见问题1. 未连接op/eop到电脑2. 有其他程序在使用op/eop (同一时间只能有一个程序使用它)3. jtag线未接4. 开发板未上电5. oflash xxx.bin 时当前目录 阅读全文
posted @ 2018-03-10 16:39 Dream998 阅读(195) 评论(0) 推荐(0)

摘要: 压缩1.压缩的概念1)压缩的目的: 在网络传递文件时,可以先将文件压缩,然后传递压缩后的文件,从而减少网络带宽。 接受者接受文件后,解压即可。 2)压缩的类型 有损压缩、无损压缩。 a)有损压缩: 如mp4视频文件,即使压缩过程中,减少了很多帧的数据, 对观看者而言,也没有影响。当然mp3音乐文件也 阅读全文
posted @ 2018-03-10 16:38 Dream998 阅读(153) 评论(0) 推荐(0)

摘要: find目的:查找符合条件的文件 1)在那些目录中查找2)查找的内容 格式: find 目录名 选项 查找条件 举例:1)find /work/001_linux_basic/dira/ -name "test1.txt"说明: a)/work/001_linux_basic/dira/指明了查找的 阅读全文
posted @ 2018-03-10 16:37 Dream998 阅读(159) 评论(0) 推荐(0)

摘要: vi编辑器的使用 一个编辑器具备的功能1)打开文件、新建文件、保存文件2)光标移动3)文本编辑4)(多行间|多列间)复制、粘贴、删除5)查找和替换 // vi编辑器的配置cd /etc/vimcp vimrc ~/.vimrccd ~gedit .vimrc在.vimrc中加入如下内容: "关闭兼容 阅读全文
posted @ 2018-03-10 16:34 Dream998 阅读(523) 评论(0) 推荐(0)

摘要: 1.新建并编辑文本文件 2.office软件 3.打开图片默认image view打开图片 4.mp3文件 本地听歌使用audacious软件 5.视频 使用smplayer软件 6.上网(初学者不容易掌握的问题,也是百问网近几年答疑频率比较高的问题) 设置网络、然后使用火狐浏览器打开。 7.网络听 阅读全文
posted @ 2018-03-10 16:31 Dream998 阅读(296) 评论(0) 推荐(0)

摘要: // 命令提示符,显示了1)当前登录的用户名2)用户当前所在的路径 // linux命令的格式 命令 [选项] [参数] 举例: ls ls -l ls -l /home 1)命令这一部分肯定是存在2)选项和参数不一定存在,可有可无。 选项和参数取决于你使用该命令实现的具体目的。3)选项是以"-"来 阅读全文
posted @ 2018-03-10 16:31 Dream998 阅读(135) 评论(0) 推荐(0)

摘要: 所有的系统调用,基于都可以在它的名字前加上“sys_”前缀,这就是它在内核中对应的函数。比如系统调用open、read、write、poll,与之对应的内核函数为:sys_open、sys_read、sys_write、sys_poll。 一、内核框架: 对于系统调用poll或select,它们对应 阅读全文
posted @ 2018-03-10 16:29 Dream998 阅读(260) 评论(0) 推荐(0)

摘要: 为了使设备支持异步通知机制,驱动程序中涉及以下3项工作:1. 支持F_SETOWN命令,能在这个控制命令处理中设置filp->f_owner为对应进程ID。 不过此项工作已由内核完成,设备驱动无须处理。2. 支持F_SETFL命令的处理,每当FASYNC标志改变时,驱动程序中的fasync()函数将 阅读全文
posted @ 2018-03-10 16:28 Dream998 阅读(358) 评论(0) 推荐(0)

摘要: 微机原理 :侧重于计算机结构数字电子技术基础 :侧重于门电路 1.GPIO和门电路 :general peripheral input/ouput1.1 输入、输出引脚、上拉电阻、三极管1.2 与门、或门、非门1.3 中断 2.协议类2.1 UART2.2 I2C2.3 SPI2.4 NAND : 阅读全文
posted @ 2018-03-10 16:27 Dream998 阅读(840) 评论(0) 推荐(0)

摘要: 1. 接口、接线、装驱动、装软件1.1 如果PC有并口,装并口驱动1.2 安装USB串口卡的驱动, 以openjtag为例: 先接上去,然后按提示安装1.3 JZ2440v2集成的USB串口:运行PL2303_Prolific_DriverInstaller_v1.5.0.exe, 然后接USB线( 阅读全文
posted @ 2018-03-10 16:26 Dream998 阅读(719) 评论(0) 推荐(0)

摘要: 1. 原子操作原子操作指的是在执行过程中不会被别的代码路径所中断的操作。常用原子操作函数举例:atomic_t v = ATOMIC_INIT(0); //定义原子变量v并初始化为0atomic_read(atomic_t *v); //返回原子变量的值void atomic_inc(atomic_ 阅读全文
posted @ 2018-03-10 16:26 Dream998 阅读(99) 评论(0) 推荐(0)

摘要: :w保存文件:q退出文件:wq保存并退出文件:q! 强制退出 在一般模式输入:i (在光标前开始插入文本)a 在光标后开始插入文本o (在当前行之下新开一行,并到行首) 光标移动 在一般模式下,hjkl这四个按键就可以移动光标h (左)j (下)k (上)l (右) 快速的定位到某一行:文件头、文件 阅读全文
posted @ 2018-03-10 16:22 Dream998 阅读(138) 评论(0) 推荐(0)

摘要: sudo apt-get install git git-core首先下载适配Mini2440的QEMU虚拟机,然后编译,安装QEMU:cd ~mkdir localgit clone git://repo.or.cz/qemu/mini2440.git qemucd qemu //安装支持库 su 阅读全文
posted @ 2018-03-10 16:21 Dream998 阅读(255) 评论(0) 推荐(0)

摘要: linux pwd //打印当前所在的路径cd //切换路径cd ~ //切换到家目录cd .. //切换到上一级目录cd - //切换到上一次所在目录cd ../.. //切换到上上级路径(其中:在linux中路径分隔符为斜杠/)ls //列出目录内容mkdir 目录名 `mkdir dir0` 阅读全文
posted @ 2018-03-10 16:20 Dream998 阅读(127) 评论(0) 推荐(0)

摘要: gcc常用选项选项 功能-v 查看gcc编译器的版本,显示gcc执行时的详细过程-o <file> 指定输出文件名为file,这个名称不能跟源文件名同名-E 只预处理,不会编译、汇编、链接t-S 只编译,不会汇编、链接-c 编译和汇编,不会链接 阅读全文
posted @ 2018-03-10 16:19 Dream998 阅读(196) 评论(0) 推荐(0)

摘要: cat /proc/devices //查询主设备号insmod ./second_drv.kols /dev/button -l 阅读全文
posted @ 2018-03-10 16:18 Dream998 阅读(192) 评论(0) 推荐(0)

摘要: //仅用flash上的根文件系统启动后,手工MOUNT NFSmount -t nfs -o nolock,vers=2 192.168.31.202:/work/nfs_root /mnt //在虚拟机中操作/work/nfs_root/tmp$ sudo chown book:book fs_m 阅读全文
posted @ 2018-03-10 16:17 Dream998 阅读(240) 评论(0) 推荐(0)

摘要: 1.window下使用TFTP下载烧录烧录内核kernel:tftp 30000000 uImagenand erase kernelnand write.jffs2 30000000 kernel 烧录文件系统fs:tftp 30000000 fs_qtopia.yaffs2nand erase 阅读全文
posted @ 2018-03-10 16:13 Dream998 阅读(142) 评论(0) 推荐(0)

摘要: 0.使用3.4.5的编译器tar xjf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2sudo vi /etc/environment设置PATH,添加/work/tools/gcc-3.4.5-glibc-2.3.6/binexport PATH=/usr/loc 阅读全文
posted @ 2018-03-10 16:09 Dream998 阅读(137) 评论(0) 推荐(0)

摘要: cd /work/nfs_root/ mkdir tmp cp fs_mini_mdev.tar.bz2 tmp/ cd tmp/ sudo tar xjf fs_mini_mdev.tar.bz2 //将mkyaffs2image复制到tools目录下cd /work/tools/ ls sudo 阅读全文
posted @ 2018-03-10 16:04 Dream998 阅读(237) 评论(0) 推荐(0)

摘要: tftp用法q //退出菜单help tftpprint //显示IPset ipaddr 192.168.31.203 //设置开发板IPset serverip 192.168.31.201 //设置PC的IPsaveping 192.168.31.201tftp 30000000 led_on 阅读全文
posted @ 2018-03-10 15:44 Dream998 阅读(277) 评论(0) 推荐(0)