嵌入式/Linux/C语言
文章平均质量分 50
#Page#
这个作者很懒,什么都没留下…
展开
-
FOC电机控制矢量控制编程心得(完整实践理论),有需要的看文章找地址进一步了解
不同于书上的大理论,我这是注重实际的编程实现,预计过多一个月完成,这是目录:目 录1. 引言2. 相电压及合成矢量推导2.1 物理模型2.2 矢量合成3. 电压空间矢量图六边形3.1 相电压计算3.2 参考点3.3 相电压空间3.4...原创 2020-04-18 09:03:02 · 8015 阅读 · 90 评论 -
推荐2个github镜像站点
推荐2个github镜像站点:https://github.wuyanzheshui.workers.dev还有个:http://labisart.com/blog/index.php/Home/Index/article/aid/182原创 2020-10-09 09:04:17 · 10125 阅读 · 0 评论 -
小米9号平衡车电机FOC跟踪观测器
实际是9号机器人的,被小米投资后品牌就被污染了,虽然出货量大增,但可能也是一种宿命吧。小米9号平衡车电驱使用了MOS内阻采样,配合北航几个研究生的跟踪观测器算法实现了霍尔的电角度估算,实际操作来看很平滑,做的不错。另外还有VESC本杰明电调的观测器,是韩国人做的,大家可以看看这篇文章,然后对照VESC的代码来看。有兴趣的看这篇文章:http://labisart.com/blog/index.php/Home/Index/article/aid/162下载:http://labisart原创 2020-10-05 21:21:17 · 2722 阅读 · 1 评论 -
教你怎么做串口输出的printf。
#include #include void uart_printf(char* fmt,...) { char buffer[128]; va_list va_params; va_start(va_params,fmt); vsprintf(buffer,fmt,va_params);原创 2009-01-05 14:22:00 · 5546 阅读 · 0 评论 -
无法找到 secchk.lib ,移植 evc 到 2005
因为基于CE4.2 (WM2003)系统里没有安全函数,而VS2005默认/GS编译先项是打开的,主要是为了防止代码缓冲区益出,提高安全性。所以,方法1:打开VS2005->项目属性->c/c++->代码产生->Buffer Security Check ->NO/(GS)然后编译,即关闭缓冲保护,可以顺利在VS2005中编译先前的EVC代码.所以我们要在VS2005中编译先前的EVC代码,可以用转载 2009-03-30 21:30:00 · 3816 阅读 · 0 评论 -
Linux下基于XScale的USB摄像头图像采集
1、引言 摄像头分为数字摄像头和模拟摄像头两大类。传统的模拟摄像头,获取图像信息需要先将视频采集设备产生的模拟视频信号经过特定的视频捕捉卡转换成数字信号,进而才能进行存储等处理。数字摄像头可以直接捕捉影像产生数字信号,然后通过串、并口或者USB接口传输到计算机里。数码摄像头的一般结构如图1 所示。 图1 数码摄像头的结构 相比于模拟摄像头,数码摄像头具有很大优势:CMOS图像传感器转载 2009-04-13 14:55:00 · 2521 阅读 · 0 评论 -
Video4linux 中文解析
•Video4linux(简称V4L),是linux中关于视频设备的内核驱动。•现在已有Video4linux2,还未加入linux内核,使用需自己下载补丁•在Linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写•摄像头在/dev/video0下1.打开视频设备:2. 读取设备信息3.更改设备当前设置(如果有必要)4.进行视频采集,两种方法: (都没转载 2009-04-15 10:52:00 · 2962 阅读 · 1 评论 -
linux 下视频设备设置的几个参数 v4l video4linux v4l2 ioctl
用一系列的ioctl发命令控制设备。v4l支持的ioctl命令大概有二十几个,为了尽快的编出一个简单的图象捕捉程序,让我们先来看看几个主要的命令:1. ioctl(fd,VIDIOCGCAP,&cap); 该命令主要是为了获取电视卡的功能信息。例如电视卡的名称,类型,channel等。参数cap是一个结构,当ioctl命令返回时,结构的各成员就被赋值了,结构体的定义为:struct转载 2009-04-13 15:37:00 · 7513 阅读 · 2 评论 -
发现一个专门讨论sdl的博客,分享下
此博主精神着实可嘉:http://www.cppblog.com/lf426/archive/2008/04/19/47575.html原创 2009-04-15 15:32:00 · 987 阅读 · 0 评论 -
yuv rgb 互转表和函数 ,从别的程序抠出来的。
////////////////////////////////////////////////////////////////////////////////// Project : VideoNet version 1.1.// Description : Peer to Peer Video Conferencing over the LAN.//转载 2009-04-22 14:32:00 · 3296 阅读 · 0 评论 -
【参考】+【原创】uboot 烧写 yaffs的补丁+补充
我用的uboot1.1.6,烧写yaffs的镜像和yaffs制作的工具紧密相关.如果采用nand write.yaffs xxx xx xx,则需要修改mkyaffsimage,如果不修改mkyaffsimage,这使用nand write.yaffs1 xxx xx xx修改mkyaffsimage我会在下一篇文章介绍.1、cmd_nand.c/*添加yaffs支持? */原创 2009-07-17 11:34:00 · 2574 阅读 · 0 评论 -
用insight(GDB的GUI端)调试时传入参数
1/open要调试的程序2/打开console:view->Console或CTRL + N3/在console里输入:run arg1 arg2...把run当做你的程序就行了,4/这时insight应该自动停在main的第一句话里了. enjoy=============================原创 2009-07-17 09:38:00 · 1939 阅读 · 0 评论 -
file_operations结构体
file_operations结构体 定义在include/linux/fs.h. file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。 在系统内部,I/O设备的存取操原创 2009-07-21 10:56:00 · 1231 阅读 · 0 评论 -
内核的文件参考下:s3c24xx-i2s.c ,来自2.6.29
/* * s3c24xx-i2s.c -- ALSA Soc Audio Layer * * (c) 2006 Wolfson Microelectronics PLC. * Graeme Gregory graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.com * * (c) 2004-2005 Simtec原创 2009-07-23 22:16:00 · 1812 阅读 · 1 评论 -
内核的文件参考下:s3c24xx_uda134x.c ,来自2.6.29
/* * Modifications by Christian Pellegrin * * s3c24xx_uda134x.c -- S3C24XX_UDA134X ALSA SoC Audio board driver * * Copyright 2007 Dension Audio Systems Ltd. * Author: Zoltan Devai *原创 2009-07-23 22:19:00 · 2052 阅读 · 0 评论 -
内核的文件参考下:smdk2443_wm9710.c,来自2.6.29
/* * smdk2443_wm9710.c -- SoC audio for smdk2443 * * Copyright 2007 Wolfson Microelectronics PLC. * Author: Graeme Gregory * graeme.gregory@wolfsonmicro.com or linux@wolfsonmicro.c原创 2009-07-23 22:20:00 · 1021 阅读 · 0 评论 -
使用shell的if else fi语句和注意的地方
用一个需要用户回答的做例子echo "delete mnt_ramdisks files(y/n)?"read key_valueif [ "${key_value}" = "y" ]; thencd mnt_ramdiskls | grep -v lost+found | xargs rm -rfecho $PWDcd ..echo $PWDelseec原创 2009-07-21 17:30:00 · 3210 阅读 · 0 评论 -
总结一下U-Boot的编译流程,uboot
现在来总结一下U-Boot的编译流程: (1)首先编译cpu/$(CPU)/start.S,对于不同的CPU,还可能编译cpu/$(CPU)下的其他文件。 (2)然后,对于平台/开发板相关的每个目录、每个通用目录,都使用它们各自的Makefile生成相应的库。 (3)将1、2步骤生成的.o、.a文件按照board/$(BOARDDIR)/config.mk文件中指定的代码段起始地址、转载 2009-05-15 15:54:00 · 1945 阅读 · 0 评论 -
关于从NAND Flash启动的问题,2440 启动问题 , 拷贝4k程序 ,启动代码分析
本文来自:http://blog.chinaunix.net/u2/69674/showart_1212448.html 用的是S3C2410.见附件start.s 其中关于nand flash启动的那一段一直百思不得其解,按说从NANDFLASH启动时,应该是前4KB映射到NGCS0,其中的代码将NAND中存放的程序拷贝到RAM中,但该文件提供的程序好象是先从NAND拷贝128K原创 2009-05-17 03:20:00 · 9169 阅读 · 0 评论 -
u-boot源码分析 --- 启动第二阶段 ,基于2410 启动代码 分析
我们先来看初始化函数表: init_sequencelib_arm/board.c:typedef int(init_fnc_t) (void);init_fnc_t*init_sequence[] = { cpu_init, /*basic cpu dependent setup */ board_init, /*basic b转载 2009-05-19 15:32:00 · 3106 阅读 · 3 评论 -
uboot传入的linux启动参数解析。命令行
Bootloader与内核的交互 Bootloader与内核的交互是单向的,Bootloader将各类参数传给内核。由于它们不能同时运行,传递办法只有一个:Bootloader将参数放在某个约定的地方之后,再启动内核,内核启动后从这个地方获得参数。 除了约定好参数存放的地址外,还要规定参数的结构。Linux 2.4.x 以后的内核都期望以标记列表(taggedlist)的形式来传递启动原创 2009-05-15 08:54:00 · 8770 阅读 · 2 评论 -
uboot 中的 config ,make config是怎么来的。
根据顶层Readme文件的说明,可以知道如果要使用开发板board/,就先执行“make _config”命令进行配置,然后执行“make all”,就可以生成如下3个文件: u-boot.bin:二进制可执行文件,它就是可以直接烧入ROM、NOR Flash的文件。 u-boot:ELF格式的可执行文件 u-boot.srec:Motorola S-Record格式的可执行文件。原创 2009-05-15 09:25:00 · 13624 阅读 · 0 评论 -
arm-linux-gcc4.3.2编译kernel 2.6.24成功,gcc4.3 内核
一开始编译有问题。上网搜索,显示是gcc4.3的变化比较大。主要问题有: undefined reference to `__udivdi3 解决方法: 在kernel的顶层目录,打开makefile,找到KBUILD_CFLAGS,添加如下选项: -fno-tree-scev-cprop 重新make zImage即可。祝你成功:)原创 2009-05-18 19:37:00 · 2185 阅读 · 0 评论 -
使用DDD+GDB开发ARM Linux程序
本文来自: http://xianzilu.spaces.live.com/blog/cns!4201FDC93932DDAF!268.entry今天又取得了一些进展,赶快写下来以免自己忘记。自从Linux在我的板子上跑起来之后,我一直在想一个问题,怎么调试将来写的程序。其实我在Linux开发方面真得很外行,到了今天才知道GDB到底是干什么用的,呵呵。我相信很多人从Bo转载 2009-05-18 14:20:00 · 1408 阅读 · 0 评论 -
s3c2410移植nand支持到uboot, 使用nand_legacy.c 【1】
网上大部分是利用drivers/nand/nand.c或者common/env_nand.c的,但是还有个drivers/nand_legacy/nand_legacy.c,我还不清楚为什么会有2个目录,据说新的uboot是靠nand_legacy.c实现的,于是我想移植到nand_legacy.c下。 1、先make smdk2410_config,make成功后再拷贝如下代码到nand转载 2009-05-20 19:30:00 · 2741 阅读 · 1 评论 -
关于软浮点、硬浮点的转换问题。uboot 编译出错
最近用gcc4.3.2和gcc3.3.2编译uboot的nand flash移植,使用nandflash mtd架构,编译的时候会出错: gcc为硬件浮点,而uboot为软件浮点。 解决方法: 注释掉/cpu//config.mk中的 -msoft-float选项 这时要make distclean,重新配置并make才可。 注:编译传统的nand_lega原创 2009-05-22 09:40:00 · 3502 阅读 · 2 评论 -
移植uboot过程中 nand flash 驱动相关的一些资料分享
1、基于优龙FS2410开发板u-boot-1.1.6的移植(NAND FLASH)http://blog.chinaunix.net/u2/74310/showart.php?id=10919292、U-Boot中SMDK2410的NAND Flash驱动http://hi.baidu.com/liudefang888/blog/item/e618f151de5c1c2043a7原创 2009-05-20 16:57:00 · 2799 阅读 · 1 评论 -
使用uclibc的buildroot制作交叉编译工具链 ,arm-linux-gcc
从一哥们的blog得知的: http://blog.sina.com.cn/s/blog_59aa01840100b57z.html 从友善之臂下的4.3.2,主要编译uboot1.1.6的时候老有错误: rm-linux-ld: ERROR: Source object /root/Desktop/work_zx2930/armgcc/4.3.2/bin/../lib/g原创 2009-05-22 12:15:00 · 6210 阅读 · 0 评论 -
s3c2410移植nand支持到uboot, 使用nand.c ,linux mtd 架构 【2】
u-boot-1.1.6与1.1.4相比,两者有较大的不同,1.1.6 更像是复制了 kernel 的方法来实现。 下面对nand flash的初始化代码nand_init()进行分析:1.如果定义(CONFIG_COMMANDS & CFG_CMD_NAND)没定义(CFG_NAND_LEGACY)则start_armboot()调用driver/nand/nand.c中原创 2009-05-21 14:51:00 · 5225 阅读 · 4 评论 -
UBOOT 的 lowlevel_init.S,代码分析,底层分析,底层初始化
作者:chenzhufly(空灵) 发表于2008/03/17 email:chenzhufly@126.com转载请注明出处---谢谢这个文件主要是设置系统时钟,初始化flash,以及SDRAM。。。../u-boot-1.3.1/cpu/arm920t/at91rm9200/lowlevel_init.S#include #i转载 2009-05-25 10:31:00 · 9077 阅读 · 0 评论 -
【原】移植madplay到arm linux
移植madplay 需要如下文件:madplay-0.15.2b.tar.gz,libmad-0.15.1b.tar.gz,libid3tag-0.15.1b.tar.gz 和 zlib-1.2.3.tar.gz。前三个文件的下载地址在这个网站可以找到相应的链接:http://sourceforge.net/project/s原创 2009-08-03 11:43:00 · 2258 阅读 · 0 评论 -
Nand 的几个名词:oob,bbt,ecc
例如Samsung K9F1208U0B,数据存储容量为64MB,采用块页式存储管理。8个I/O引脚充当数据、地址、命令的复用端口。 芯片内部存储布局及存储操作特点: 一片Nand flash为一个设备(device), 其数据存储分层为: 1 (Device) = 4096 (Blocks) 1 (Block) -= 32 (Pa原创 2009-06-01 09:37:00 · 15273 阅读 · 5 评论 -
uboot 的内存命令使用: mw (修改) md (显示),u-boot 内存 memory
修改: mw [内存地址] [值] [长度]例如:mw 0x02000000 0 128表示修改地址为0x02000000~0x02000000+128的内存值为0. //-----------------------------------------------------------------------显示: md [内存地址] [长度]例如:原创 2009-06-10 14:11:00 · 29339 阅读 · 0 评论 -
rhel5 linux 配置jdk,卸载自带java
搞了半天,rhel5带了1.4,找了很多删除方法都不行。后来用一个大侠的:yum remove java就ok了,哈哈当然,记得要1.6的环境变量设置好。 例如:export JAVA_HOME=/usr/java/jdk1.6.0_10export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jarexp原创 2009-06-12 17:11:00 · 2736 阅读 · 0 评论 -
用eclipse导入uboot工程,在rhel5, uboot1.1.6 u-boot
下了最新的eclipse.3.4.2.启动的时候需要jvm1.5以上,先把自带的1.4卸载,方法见上一篇文章。启动后,先new-》c project -》empty makefile project。toolchains选择other toolchain。一直next后建立一个新的空白工程。然后file-》import-》general-》file system浏览uboot的原创 2009-06-12 17:33:00 · 4272 阅读 · 4 评论 -
ARM ADS中的AXD 调试经验集锦
本文来自:http://blog.ednchina.com/arm/35008/message.aspx 1、如何设置AXD连接的Target。在菜单的Configure Target…选项中可以设置。一般选择MutiIce或者ARMUL两种。ARMUL是一种ARM的模拟器。一般的算法或者一些无需和硬件中断等设备打交道的程序都可以通过这个进行调试。使用上非常简单。我们一般上板子转载 2009-06-16 14:11:00 · 1183 阅读 · 0 评论 -
U-BOOT下使用bootm引导内核方法 bootm kernel 引导
本文来自:http://www.cnitblog.com/luofuchong/archive/2007/01/12/21834.htmlu-boot 使用的是打上: http://www.hhcn.com/cgi-bin/转载 2009-06-16 17:14:00 · 4168 阅读 · 0 评论 -
安装gdb6.8 insight6.8 gdb insight
一开始单独安装gdb6.8,居然出错,提示tck配置不对。没办法,我先安装insight吧,安装很长时间,后来一看,他把gdb也安装上了,哈哈,爽啊。原创 2009-06-16 17:46:00 · 1460 阅读 · 0 评论 -
linux源码分析之解压内核映像 head.s
arm-linux源码分析之解压内核映像http://blog.csdn.net/BoySKung/archive/2008/12/05/3448083.aspx#<!-- document.body.oncopy = function() { if (window.clipboardData) {转载 2009-06-19 14:55:00 · 2897 阅读 · 0 评论 -
指针 8位转32 的读写技巧
关键是把unsigned char *转换成unsigned int *读操作:static void read_buf(u_char *buf, int len){ unsigned int idx,num; num = (len>>2); for (idx=0; idx ((u_int*)buf)[idx] = reg32(r原创 2009-08-26 14:51:00 · 2661 阅读 · 2 评论