• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
一蓑烟雨
C/C++,Linux,语音技术
博客园    首页    新随笔    联系   管理    订阅  订阅
2011年7月14日
Sphinx武林秘籍(上)
摘要: Sphinx武林秘籍(上)――使用现有的语言模型与声学模型一、 使用平台Windows XP、VMware workstation+ Ubuntu10.10(1) Soundrecorder 测试下能否使用(2) sudo apt-get install libasound2-dev二、 CMUSphinx语音识别工具包Pocketsphinx — 用C语言编写的轻量级识别库Sphinxbase — Pocketsphinx所需要的支持库Sphinx3 — 为语音识别研究用C语言编写的解码器CMUclmtk — 语言模型工具Sphinxtrain — 声学模型训练工具下载网址:http://s 阅读全文
posted @ 2011-07-14 17:01 lovemu 阅读(25439) 评论(17) 推荐(3)
redhat下搭建交叉编译环境一个问题
摘要: 昨晚帮同学在redhat下搭建交叉编译环境的时候,解决了一个问题,觉的这个问题还是有一点意义的,现在将它记录下来。1、开始进入root下面,把交叉编译压缩包复制到tmp下面,然后解压。。命令这里就不说这个了。2、解压之后我们可以找到交叉编译的工具在/tmp/usr/...../bin 下面。在bin下面我们可以看到一系列的arm-linux-开头的编译工具3、这时我们要设置路径,使编译时自已能调用编译工具。4、我们使用如下命令: vi /root/.bashrc 进入里面之后在底端增加一行:export PATH=$PATH:/tmp/usr/...../bin :wq 保存退出之后,再启动 阅读全文
posted @ 2011-07-14 16:01 lovemu 阅读(1569) 评论(0) 推荐(0)
U-Boot移植(15)TFTP installation and setting(tftp-hpa and tftpd-hpa)
摘要: Today i installed and set the tftp,because i may use this tool to download your kernel and filesystem image to my target board. process:sudo -i 1、Install tftpd and related packages. # apt-get install xinetd tftpd-hpa tftp-hpa2、modify etc/default/tftpd-hpa#Defaults for tftpd-hpa RUN_DAEMON="yes& 阅读全文
posted @ 2011-07-14 15:58 lovemu 阅读(560) 评论(0) 推荐(0)
U-Boot移植(14)解决saveenv不能保存环境变量
摘要: 1、没修改之前,u-boot.bin烧入板中,在dnw终端显示操作如下:U-Boot 1.1.6 (Nov 25 2009 - 22:15:51)DRAM: 64 MB Flash: 1 MB NAND: 64 MiB *** Warning - bad CRC, using default environmentIn: serial Out: serial Err: serial UPLLVal [M:28h,P:1h,S:2h] MPLLVal [M:5ch,P:4h,S:0h] CLKDIVN:3h+-------------------------------------------- 阅读全文
posted @ 2011-07-14 15:41 lovemu 阅读(4401) 评论(0) 推荐(0)
U-Boot移植(13)Warning - bad CRC or NAND, using default environment
摘要: 接上面(5)在串口终端出现如下:U-Boot 1.1.6 (Nov 25 2009 - 22:15:51)DRAM: 64 MB Flash: 1 MB NAND: 64 MiB *** Warning - bad CRC, using default environment还存在警告,这个警告不是错误,而是新的环境变量起作用,只要在OPENJTAG<下输入saveenv就能保存新的环境变量,reset之后就可以看到Warning消失了。。。但是我在下面输入saveenv、reset之后还存在警告。。。网友henry.li说:估计是你的环境变量保存的位置不正确,环境变量实际上没有保存。 阅读全文
posted @ 2011-07-14 15:38 lovemu 阅读(7622) 评论(0) 推荐(0)
U-Boot移植(11)u-boot的重要细节
摘要: 主要分析流程中各函数的功能。按启动顺序罗列一下启动函数执行细节。按照函数start_armboot流程进行分析: 1)DECLARE_GLOBAL_DATA_PTR; 这个宏定义在include/global_data.h中: #define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8") 声明一个寄存器变量 gd 占用r8。这个宏在所有需要引用全局数据指针gd_t *gd的源码中都有申明。 这个申明也避免编译器把r8分配给其它的变量. 所以gd就是r8,这个指针变量不占用内存。 2)gd = (g 阅读全文
posted @ 2011-07-14 15:33 lovemu 阅读(2046) 评论(0) 推荐(0)
U-Boot移植(12)u-boot的重要细节
摘要: 主要过程:查看环境参数stdin,stdout,stderr中对标准IO的指定的设备名称,再按照环境指定的名称搜索devlist,将搜到的设备指针赋给标准IO数组stdio_devices[]。置gd->flag标志 GD_F*G_DEVINIT。这个标志影响putc,getc函数的实现,未定义此标志时直接由串口serial_getc和serial_putc实现,定义以后通过标准设备数组stdio_devices[]中的putc和getc来实现IO。下面是相关代码: void putc (const char c) { #ifdef CONFIG_SILENT_CONSOLE if (g 阅读全文
posted @ 2011-07-14 15:33 lovemu 阅读(579) 评论(0) 推荐(0)
U-Boot移植(10)u-boot重定位后的内存分布
摘要: 对于smdk2410,RAM范围从0x30000000~0x34000000. u-boot占用高端内存区。从高地址到低地址内存分配如下: 显示缓冲区 (.bss_end~34000000) u-boot(bss,data,text) (33f00000~.bss_end) heap(for malloc) gd(global data) bd(board data) stack .... nor flash (0~2M)参考:http://deshunfan.blog.163.com/blog/static/34244101200972832324749/#comment=fks_08306 阅读全文
posted @ 2011-07-14 15:30 lovemu 阅读(1033) 评论(0) 推荐(0)
U-Boot移植(9)u-boot主要的数据结构
摘要: u-boot的主要功能是用于引导OS的,但是本身也提供许多强大的功能,可以通过输入命令行来完成许多操作。所以它本身也是一个很完备的系统。u-boot的大部分操作都是围绕它自身的数据结构,这些数据结构是通用的,但是不同的板子初始化这些数据就不一样了。所以u-boot的通用代码是依赖于这些重要的数据结构的。这里说的数据结构其实就是一些全局变量。 1)gd 全局数据变量指针,它保存了u-boot运行需要的全局数据,类型定义: typedef struct global_data { bd_t *bd; //board data pointor板子数据指针 unsigned long flags; / 阅读全文
posted @ 2011-07-14 15:28 lovemu 阅读(391) 评论(0) 推荐(0)
U-Boot移植(8)u-boot的流程
摘要: u-boot的启动流程: 从文件层面上看主要流程是在两个文件中:cpu/arm920t/start.s,lib_arm/board.c, 1)start.s 在flash中执行的引导代码,也就是bootloader中的stage1,负责初始化硬件环境,把u-boot从flash加载到RAM中去,然后跳到lib_arm/board.c中的start_armboot中去执行。1.1.6u-boot的start.s流程:硬件环境初始化: 进入svc模式;关闭watch dog;屏蔽所有IRQ掩码;设置时钟频率FCLK、HCLK、PCLK;清I/D cache;禁止MMU和CACHE;配置memory 阅读全文
posted @ 2011-07-14 15:26 lovemu 阅读(468) 评论(0) 推荐(0)
U-Boot移植(7)总结U-Boot工程的总体结构
摘要: 3、u-boot的通用目录是怎么做到与平台无关的?include/configs/100ask24x0.h这个头文件中主要定义了两类变量。 一类是选项,前缀是CONFIG_,用来选择处理器、设备接口、命令、属性等,主要用来决定是否编译某些文件或者函数。另一类是参数,前缀是CFG_,用来定义总线频率、串口波特率、Flash地址等参数。这些常数参量主要用来支持通用目录中的代码,定义板子资源参数。这两类宏定义对u-boot的移植性非常关键,比如drivers/cs8900.c,对cs8900而言,很多操作都是通用的,但不是所有的板子上面都有这个芯片,即使有它在内存中映射的基地址也是平台相关的。所以对 阅读全文
posted @ 2011-07-14 15:25 lovemu 阅读(401) 评论(0) 推荐(0)
U-Boot移植(6)总结U-Boot工程的总体结构
摘要: 1、源代码组织对于ARM而言,主要的目录如下:board 平台依赖 存放电路板相关的目录文件,每一套板子对 应一个目录。如smdk2410(arm920t) cpu 平台依赖 存放CPU相关的目录文件,每一款CPU对应一个目录,例如:arm920t、 xscale、i386等目录lib_arm 平台依赖 存放对ARM体系结构通用的文件,主要用于实现ARM平台通用的函数,如软件浮点。common 通用 通用的多功能函数实现,如环境,命令,控制台相关的函数实现。include 通用 头文件和开发板配置文件,所有开发板的配置文件都在configs目录下lib_generic 通用 通用库函数的实现n 阅读全文
posted @ 2011-07-14 15:24 lovemu 阅读(518) 评论(0) 推荐(0)
U-Boot移植(5)dnw串口终端没有反应
摘要: 把上面生成的u-boot.bin文件,在cmd下利用sfj2410方式烧入板中,首先拔掉短路帽。。。然后经过连续几个0,之后,开始烧入板子,烧完后退出。重启板子,在串口端下竟然没有看见一点信息,心凉了一大截。。。呵呵!编译、连接没问题,烧写也没有问题,那为什么uboot启动不了呢?于是上了http://www.100ask.net论坛,这个论坛的超级版主就是《嵌入式linux应用开发完全手册》的作者,真的是百问网,问什么都答。。。开始怀疑是ylp2410的晶振问题,后来看了下优龙板晶振也都是12MHZ,在YLP2410_BIOS下启动linux过程也可以看到这方面的信息。。所以也不是晶振问题。 阅读全文
posted @ 2011-07-14 15:18 lovemu 阅读(1758) 评论(0) 推荐(0)
打补丁patch 命令使用
摘要: patch 命令用于打补丁,补丁文件是使用diff产生的patch 命令语法patch [ -b [ -B Prefix ] ] [ -f ] [ -l ] [ -N ] [ -R ] [ -s ] [ -v ] [ -c | -e | -n ] [ -d Directory ] [ -D Define ] [ -F Number ] [ -i PatchFile ] [ -o OutFile ] [ -p Number ] [ -r RejectFile ] [ -x Number ] [ File ]patch 命令失败或拒绝接受补丁时,会产生一个和原文件同名,以".rej&qu 阅读全文
posted @ 2011-07-14 15:16 lovemu 阅读(33462) 评论(0) 推荐(0)
U-Boot移植(4)增加对S3C2440的支持 (修改编译错误)
摘要: 9、第一次make all,出现如下错误。 从上面错误可以看出明显是结构体中没有定义CAMDIVN,于是要找到定义这个时钟变量的地方,增加它。进入include/s3c24x0.h,找到下面的typedef struct处: typedef struct 的最后一行为新增的。 修改完后保存,再次回到顶层中,先make distclean。10、再一次make all,又出现了如下错误: 上面到底是什么错误呢?一时是想不通,吃个饭再说吧!吃完饭来到实验室之后,上网查了些资料,终于明白。要么U-Boot源码问题,要么是编译器的问题。源码是从官方下的,一般是不会有问题的,那么就是编译器问题,那编译器 阅读全文
posted @ 2011-07-14 15:14 lovemu 阅读(521) 评论(0) 推荐(0)
U-Boot移植(3)增加对S3C2440的支持
摘要: 昨天跟张老师去打乒乓球了,还没写完今天接着写。。。。。6、S3C2440是S3C2410的改进版,它们的操作基本相似,只是在系统时钟的设置、NAND Flash控制器的操作等方面有一些小差别。。而下面我要做的就是令一个U-Boot二进制代码既可以在S3C2410上运行,也可以在S3C2440上运行。 虽说我的板也是S3C2410的,但是增加S3C2440的U-Boot练习,可以提高我们的能力,为后面的学习打下基础。 GSTATUS1寄存器的值:0x32410000表示S3C2410,0x32410002表示S3C2440。 S3C2410:FCLK=200MHZ;S3C2440:FCLK=40 阅读全文
posted @ 2011-07-14 15:10 lovemu 阅读(830) 评论(0) 推荐(0)
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3