- 博客(80)
- 资源 (20)
- 收藏
- 关注
原创 基于STM32H750的DCMI接口OV5640摄像头条码识别
使用SSTM32H750开发板,开发板自带DCMI接口可以接OV5640摄像头模块,且自带LAN8720 以太网PHY,带有TF卡槽,CAN/CANFD功能,运用开发板识别条形码,且通过以太网传输到电脑上。
2024-05-13 22:23:17 749
原创 4路/8路模拟CVBS摄像头TW6865/TW6869 i.MX6四核工业级Android、Linux、STM32、NXP
1.1. 核心板简介 核心板简介JQQIT_MX6_SOM100核心板是我公司基于NXP(Freesacle) i.MX 6 系列应用处理器研发设计的,是一个可运行Android、Linux系统的最小硬件平台;其中处理器i.MX 6是基于ARM® Cortex® - A9架构的可扩展多核平台,拥有包括单核、双核及四核多种选择。 JQQIT_MX6_SOM100核
2017-09-13 15:49:19 5857
原创 imx6 android4.3 bsp开发实录之串口
习惯了做单片机,既然是串口,那就去看一下datasheet里对于串口寄存器的配置,可是回到头来,fsl对于引脚的配置实际已经做好了,在/plat-mxc/include/mach/iomux-mx6dl.h里在/myandroid/kernel_imx/arch/arm/mach-mx6/board_sabresd.h里添加我们引脚的配置 MX6DL_PAD_
2015-06-09 20:10:06 1684
原创 imx6 android4.3 bsp开发实录之一触摸屏
本文里主要针对红外触多点触摸屏1、将厂家给的屏驱动文件添加进内核2、在android系统的ueventd.rc里添加触摸屏设备的权限 /dev/irtouch 0666 root root3、将xxx.idc文件放入android系统的usr/idc目录下面,如果此步不放,屏幕上的鼠标将会是一个白色的圆圈4、那就是安装触摸屏的校验程序了
2015-06-09 20:09:44 1453
原创 imx6 android4.3 bsp开发实录之一lvds、HDMMI输出显示
手上有多块屏 LVDS双通道, LVDS单通道, HDMI1980P,怎么说了,这个私活真的有点坑的,不过还好,做起来也容易案例一 LVDS单通道相信看过freescale驱动源码的都知道,显示这块支持好几种模式,下面贴一下代码路径myandroid/kernel_imx/drivers/video/mxc/ldb.c里/* * "ldb=spl0/1"
2015-06-09 20:08:00 6316
原创 imx6 android4.3 bsp开发实录之一系统烧录失败
去年忙活了好几个月,接了个私活 freescale i.mx6 Cortex-A9架构,虽然是私活,但不工作还是不小的,时隔将近半年了,下面记录一下开发过程中遇到的问题,以后大家参考,本节讨论烧录的时候失败,或者停留在某个地方
2015-06-09 20:07:31 1302
原创 android应用之2
1、获取时间 Time t=new Time(); // or Time t=new Time("GMT+8"); 鍔犱笂Time Zone璧勬枡銆� t.setToNow(); // 鍙栧緱绯荤粺鏃堕棿銆� int year = t.year; int month = t.month; int date = t.monthDay
2014-09-17 08:57:32 799
原创 mx6第二篇
接第一篇从新启动系统之后frameworks/base/core/res/res/values/public.xml:1912: warning: No comment for public symbol android:style/Widget.DeviceDefault.Light.ActionBar.TabBarframeworks/base/core/res/res/values/
2014-04-23 10:50:25 2466
原创 MX6第一篇
必须要写点东西,折腾了好几个小时,终于能下载了,还不知道最终结局怎么样 首先1 curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo ,下载repo总是报错 然后有网友提供repo1.19,在后续的操作中不行,总是提示密钥错误,后用了repo1.12,才有用htt
2014-04-23 10:49:38 14621
原创 sd 卡写数据
折腾了半个小时,曾经的记忆已不在,这次从新来过一次df -h指令可以查看当前挂载了哪些东西,挂载点在哪里如下root@lizi:/media/娱乐/ok6410/Linux-3.0.1/demo# df -hFilesystem Size Used Avail Use% Mounted on/dev/sda1 60G 3.9G
2014-02-16 21:18:44 690
原创 ubuntu11.04
亏我一直用11.04用了那么久,偶尔一天重装系统,尼玛什么中文都不显示,设置IBUS输入,无效,更新无效,第二天重启电脑,尼玛,图形界面彻底崩掉,直接终端模式爹啊,折腾了许久,果断更新到11.10,看了下11.10也不是LTS版,先有着吧,以后再更新到12.04LTS版
2014-01-08 19:24:00 709
原创 运放总结
首先说一下共模信号,就是在差分信号放大的输入端输入极性相同的信号,而差模信号是极性相反的信号一、运放参数有1、共模抑制比,差模电压增益和共模电压增益的比值,此值越高越好,一般为80db左右,高的达到150db;2、输入失调电压,当输出电压为0V时,加在输入端的电压;此值一般几mV;此值越小越好,说明对称性好;3、输入失调电流,当输入端不输入信号时,两输入端的电流之差,此值一般是
2013-11-18 12:57:56 1962
原创 qt之文件操作
1、QFindDialog 用来提供给用户打开一个文件 QStringfileName= QFileDialog::getOpenFileName(); //打开文件 if(fileName.isEmpty()) //如果文件是空的,直接返回 return; QFileInfo fileInfo(fileNam
2013-01-21 13:23:01 1173
原创 qt之tcp
1、需要在pro里添加network2、qtcpserver qtcpsocket tcp客户端 tcpSocket = new QTcpSocket(this); connect(tcpSocket, SIGNAL(connected()), this, SLOT(connectedInt())); connect(tcpSocket, SIGNAL(d
2013-01-21 12:56:19 1329
原创 qt 之 mainwidget
1、新建菜单mainwindow类里添加的private: Ui::MainWindow *ui; QMenu *menuBox[5]; QAction *actionFile[6];mainwindow构造函数里的 menuBox[0]=menuBar()->addMenu(tr("&File")); //新建菜单项
2013-01-21 12:08:07 3189
原创 二极管
常用的1N4000系列二极管耐压比较如下:型号 1N4001 1N4002 1N4003 1N4004 1N4005 1N4006 1N4007反向耐压(V) 50 100 200 400 600 800 1000正向电流(A) 均为1 正向压降为1V正向浪涌电流
2013-01-14 15:48:52 1374
原创 LWIP 分析二之udp
直接上upd_inputvoidudp_input(struct pbuf *p, struct netif *inp){ struct udp_hdr *udphdr; struct udp_pcb *pcb, *prev; struct udp_pcb *uncon_pcb; struct ip_hdr *iphdr; u16_t src, dest;
2013-01-04 16:31:34 4580 1
原创 lwip 分析一
一、接收端 1、通过ehternetif_inputvoid ethernetif_input(struct netif *netif){ struct ethernetif *ethernetif; struct eth_hdr *ethhdr; struct pbuf *p; ethernetif = netif->state; /* mov
2013-01-04 15:32:00 6670
原创 lwip 移植
一、源码目录结构 api 、 core、netif、 include core下又有IPV4 、 IPV6 、 SNMP 和.c文件 include下又有IPV4、IPV6、LWIP、netif netif下的文件有 1. ethernetif.c这里主要涉及到具体的硬件 2.etharp.c 这里有个函数eth
2013-01-04 14:55:18 9112 4
原创 clk_register
之前写了那么多关于系统时钟的机制,说到底,就那么回事,初始化系统时钟,初始化软中断,以及初始化那个tvec_base,就这些,其他的也没有什么了,这篇主要关于每个外部设备的时钟的初始化,及获取。 首先贴上源码arch/arm/mach-s3c64xx/mach-smdk6410.c 1145 MACHINE_START(SMDK6410, "SMDK6410") 114
2012-10-08 10:09:55 2002
原创 中断六
继续分析asm_do_IRQ里的irq_exit/kernel/softirq.c/* * Exit an interrupt context. Process softirqs if needed and possible: */void irq_exit(void){ account_system_vtime(current); //空函数includ
2012-10-08 10:09:29 831
原创 中断五
其实废话一点都不想说,网上有人写了一大堆,搜搜一大把,想想还是写点自己的东西吧,可以熟悉一下,方便以后查阅贴一下之前有分析过的一段代码 arch/arm/kernel/trap.cvoid __init early_trap_init(void){ unsigned long vectors = CONFIG_VECTORS_BASE; ex
2012-10-08 10:09:16 683
原创 中断四
还记得系统时钟初始化的时候吗,定义了系统时钟中断函数,static irqreturn_t mxc_timer_interrupt(int irq, void *dev_id){ struct clock_event_device *evt = &clockevent_mxc; uint32_t tstat; if (timer_is_
2012-10-08 10:08:59 583
原创 中断三
接着上面的硬件中断继续分析吧/include/linux/interrupt.hrequest_irq();request_threaded_irq(unsigned int irq, irq_handler_t handler, irq_handler_t thread_fn, unsigned
2012-10-08 10:08:42 663
原创 中断二
依然从start_kernel开始,里面调用了四个涉及中断的函数,如下:1、trap_init();2、early_trap_init();3、init_IRQ();4、softirq_init();下面来一个一个分析1、trap_init()arch/arm/kernel/trap.cvoid __init trap_init(void){
2012-10-08 10:08:30 744
原创 中断一
struct irq_desc { unsigned int irq; struct timer_rand_state *timer_rand_state; unsigned int *kstat_irqs;#ifdef CONFIG_INTR_REMAP struct irq_
2012-10-08 10:08:13 598
原创 时钟五
看了好多人分析了软件时钟部分,我也凑一下热闹吧,之前有说道软件时钟在何处执行的,在系统时钟中断里,执行的函数在init_timers中定义了open_softirq(TIMER_SOFTIRQ, run_timer_softirq); //初始化软中断函数 主意这里的是定时器软中断,开来还有其他软中断啊void open_softirq(int nr, void (*action)(
2012-09-21 16:25:30 716
原创 时钟四
接下来该分析time_init了/arch/arm/kernel/time.cvoid __init time_init(void){#ifndef CONFIG_GENERIC_TIME if (system_timer->offset == NULL) system_timer->offset = dummy_gettimeo
2012-09-21 16:25:21 1507 1
原创 时钟三
时钟机制的,使用通知链技术来执行。通知链技术,时钟源建立一个链表,然后待发生的事件将自己要执行的操作注册到链表上,简单吧,呵呵通知链有好多种:原子通知链( Atomic notifier chains ):通知链元素的回调函数(当事件发生时要执行的函数)只能在中断上下文中运行,不允许阻塞 可阻塞通知链( Blocking notifier chains ):通知链元素的回调函数在进
2012-09-21 16:25:09 652
原创 时钟二
内核中使用struct clocksource描述时钟源,使用clocksource_list来维护struct clocksource;使用struct clock_event_device来描述时钟发生的时间;使用clockevent_devices来维护struct clock_event_device;/include /linux/clocksource.h/**
2012-09-21 16:24:56 597
原创 时钟一
一切皆非难事,只要有恒心,蚂蚁也可啃掉大象,今天开始分析一下linux里的时钟机制。首先贴一下该是的启动Linux 部分asmlinkage void __init start_kernel(void){ char * command_line; extern struct kernel_param __start___param[], __stop
2012-09-21 16:23:34 677
原创 iic三
int i2c_add_numbered_adapter(struct i2c_adapter *adap){ int id; int status; if (adap->nr & ~MAX_ID_MASK) return -EINVAL;retry: if (idr_
2012-09-20 14:58:32 658
原创 iic二
一、driver/i2c/i2c-core.cstatic int __init i2c_init(void){ int retval; retval = bus_register(&i2c_bus_type); if (retval) return retval; retval =
2012-09-20 14:58:16 533
原创 iic一
struct i2c_client { unsigned short flags; /* div., see below */ unsigned short addr; /* chip address - NOTE: 7bit */
2012-09-20 14:58:07 540
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人