cubieboard2使用ov7670模块

Cubieboard2折腾手记(一) Cubieboard折腾手记    前段时间终于是入手了一块Cubieboad2,板子的参数看着挺不错,全志A20的cpu,1G的RAM,4G的nandflash。本来就是想搞个树莓派来玩的,后来看了看,选了这个CubieBoard2,加上其他的一些配件的,参不多是400软妹币,全志的资料在网上找了下,也是不少的,对linux也算比较友好的。    废话不多说了,拿到板子后当然是装上自己最喜爱 阅读详情

我使用的是cubieboard2板+dvk521扩展板,源码包是到官网下载的cubieboard2_android_SDK_v1.05。

android系统及内核源码编译见:http://blog.csdn.net/lynchyo/article/details/38292407。

关于全志A20摄像头模块配置的资料很多,杂乱无章,而且只是操作性介绍,并没有详细地说明相应操作的原因,也没有针对相应板子和源码包进行配置说明,导致像我一样的初学者刚接触时往往会一头雾水,按着资料配置很难配置成功。

经过一段时间的摸索,理清了整个配置过程,故总结之。


一、ov7670驱动文件ov7670.c在哪?

我的源码包cubieboard2_android_SDK_v1.05编译完后并没有ov7670.ko模块,原因有两个:一个是没驱动文件ov7670.c,一个是模块没指定编译。

不过通过到lichee/linux-3.4/目录下,make menuconfig,发现ov7670模块已指定编译成模块,那是不是真的没有驱动文件呢?

Device Drivers  ---> <*> Multimedia support  ---> [*]   CSI Driver Config for sunxi  ---> <M>   OmniVision OV7670 sensor support


再到CubieBoard2_SDK/lichee/linux-3.4/drivers/media/video/sunxi_csi/device目录下,果然没有ov7670驱动文件ov7670.c,那到哪里去找ov7670.c文件呢?

 

在lichee/linux-3.4目录下$ locate ov7670.c,发现在CubieBoard2_SDK/lichee/linux-3.4/drivers/media/video目录下有一个ov7670.c,是不是它呢?不管三七二十一,把它copy一份到CubieBoard2_SDK/lichee/linux-3.4/drivers/media/video/sunxi_csi/device目录下,然后修改该目录下的makefile,在文件后面加上:obj-$(CONFIG_CSI_OV7670)+= ov7670.o


 

重新编译内核:

$ cd lichee/linux-3.4

$ make clean

$ cp arch/arm/configs/cubieboard2_config .config

$ cd ..

$ ./build.sh -p sun7i_android

 

编译完成后在CubieBoard2_SDK/lichee/linux-3.4/drivers/media/video/sunxi_csi/device目录下生成ov7670.ko。


配置sys_config.fex,camera.cfg,init.sun7i.rc,ueventd.sun7i.rc文件,然后

$ cd ../android

$ source build/envsetup.sh

$ lunch 选15

$ extract-bsp

$ make

$ pack


生成镜像在windows下用PhoenixSuit烧录到板子上,点击camera启动图标,会出现Unfortunately,Camera has stopped.

在cmd下adb logcat可看到程序运行出错原因,是因为找不到/dev/video0,而/dev/video0是否存在正是反映了驱动加载是否成功,不存在/dev/video0,证明驱动没加载成功。



adb root

adb shell

lsmod  查看已加载的模块


并没有camera.ko和sunxi_csi1.ko,调试内核,手动加载驱动(注意顺序):

echo 8 > /proc/sys/kernel/printk
rmmod /system/vendor/modules/sunxi_csi1.ko
rmmod /system/vendor/modules/ov7670.ko
rmmod /system/vendor/modules/camera.ko
insmod /system/vendor/modules/camera.ko
insmod /system/vendor/modules/ov7670.ko
insmod /system/vendor/mo
dules/sunxi_csi1.ko

dmesg > /sdcard/1.txt


查看1.txt:



可根据打印的信息用notepad++搜索打印该信息的地方,进而跟踪出错的原因,初步定位在以下位置:




无论怎么配置sys_config.fex,camera.cfg,init.sun7i.rc,ueventd.sun7i.rc这四个文件,无论是自动加载驱动,还是通过adb shell 手动rmmod,insmod,驱动都是没加载成功,不过初步觉得是sunxi_csi1.ko和ov7670.ko的问题。究竟问题在哪呢?


另外,购买板子时附带了一些资料:




出现格式不对的错误,原因是附带的ko文件编译时所依赖的内核版本跟我编译的内核版本不一致,所以附带的摄像头驱动资料也用不了。通过在Ubuntu下modinfo ov7670.ko知道该模块是在3.4.61版本内核下编译的,而我用的内核版本是3.4.39(cubieboard2_android_SDK_v1.05)。


另外发现一个问题:附带资料里的ov7670.ko大小有173KB,而我编出来的ov7670.ko只有63KB,是不是我用来编译的ov7670.c有问题?我拷贝的ov7670.c是不是linux内核本身自带有的驱动文件,并不适合板子用?于是我到网上或官网上尝试寻找正确的ov7670.c,未果。

 

再到http://docs.cubieboard.org/tutorials/cb2/development/building_your_own_android_image,对新的源码包cubieboard2_android_SDK_v1.09产生了兴趣,既然买板子时配了ov7670模块,那么肯定有源码包带有ov7670.c,于是我下载了这个源码包,解压,在lichee/linux-3.4/drivers/media/video/sunxi_csi/device目录下的确有了ov7670.c,拿来跟我之前copy的ov7670.c比较:



原来的ov7670.c真的不行啊!通过文件比较,camera.ko及sunxi_sci1.ko的源文件在两个源码包中一样,驱动加载不成功的原因很明确,就是没找到对应的ov7670.c。

 

于是用这个新的驱动文件替换掉原来的,再到CubieBoard2_SDK/android/out/target/product/sugar-cubieboard2/system/vendor/modules目录下把ov7670.ko删了(这一步很重要,如果没删,重新编译打包后ov7670.ko还是原来那个,所以必须删)。


二、正确配置文件

保证驱动模块没问题之后,必须正确配置sys_config.fex,camera.cfg,init.sun7i.rc,ueventd.sun7i.rc四个文件。

lichee/tools/pack/chips/sun7i/configs/android/sugar-cubieboard2/sys_config.fex文件:

[camera_list_para]
camera_list_para_used   = 0
ov7670                  = 1
gc0308                  = 0
gt2005                  = 0
hi704                   = 0
sp0838                  = 0
mt9m112                 = 0
mt9m113                 = 0
ov2655                  = 0
hi253                   = 0
gc0307                  = 0
mt9d112                 = 0
ov5640                  = 0
gc2015                  = 0
ov2643                  = 0
gc0329                  = 0
gc0309                  = 0
tvp5150                 = 0
s5k4ec                  = 0
ov5650_mv9335           = 0
siv121d                 = 0

;--------------------------------------------------------------------------------
;csi gpio configuration
;csi_if: 0:hv_8bit 1:hv_16bit 2:hv_24bit 3:bt656 1ch 4:bt656 2ch 5:bt656 4ch
;csi_mode: 0:sample one csi to one buffer 1:sample two csi to one buffer
;csi_dev_qty: The quantity of devices linked to csi interface
;csi_vflip: flip in vertical direction 0:disable 1:enable
;csi_hflip: flip in horizontal direction 0:disable 1:enable
;csi_stby_mode: 0:not shut down power at standby 1:shut down power at standby
;csi_iovdd: camera module io power , pmu power supply
;csi_avdd:	camera module analog power , pmu power supply
;csi_dvdd:	camera module core power , pmu power supply
;pmu_ldo3:  fill "axp20_pll"
;pmu_ldo4:  fill "axp20_hdmi"
;fill "" when not using any pmu power supply
;csi_flash_pol: the active polority of the flash light IO 0:low active 1:high active
;--------------------------------------------------------------------------------

[csi0_para]
csi_used            = 0

csi_dev_qty         = 1
csi_stby_mode       = 0
csi_mname           = "ov7670"
csi_if              = 0
csi_iovdd           = ""
csi_avdd            = ""
csi_dvdd            = ""
csi_vol_iovdd       = 
csi_vol_dvdd        = 
csi_vol_avdd        = 
csi_vflip           = 1
csi_hflip           = 0
csi_flash_pol       = 1
csi_facing          = 0

csi_twi_id          = 1
csi_twi_addr        = 0x42
csi_pck             = port:PG00<3><default><default><default>
csi_ck              = port:PG01<3><default><default><default>
csi_hsync           = port:PG02<3><default><default><default>
csi_vsync           = port:PG03<3><default><default><default>
csi_d0              = port:PG04<3><default><default><default>
csi_d1              = port:PG05<3><default><default><default>
csi_d2              = port:PG06<3><default><default><default>
csi_d3              = port:PG07<3><default><default><default>
csi_d4              = port:PG08<3><default><default><default>
csi_d5              = port:PG09<3><default><default><default>
csi_d6              = port:PG10<3><default><default><default>
csi_d7              = port:PG11<3><default><default><default>
csi_reset           = port:PH14<1><default><default><0>
csi_power_en        = 
csi_stby            = port:PH17<1><default><default><0>

[csi1_para]
csi_used            = 1

csi_dev_qty         = 1
csi_stby_mode       = 0
csi_mname           = "ov7670"
csi_if              = 0
csi_iovdd           = ""
csi_avdd            = ""
csi_dvdd            = ""
csi_vol_iovdd       = 
csi_vol_dvdd        = 
csi_vol_avdd        = 
csi_vflip           = 1
csi_hflip           = 0
csi_flash_pol       = 1
csi_facing          = 0

csi_twi_id          = 1
csi_twi_addr        = 0x42
csi_pck             = port:PG00<3><default><default><default>
csi_ck              = port:PG01<3><default><default><default>
csi_hsync           = port:PG02<3><default><default><default>
csi_vsync           = port:PG03<3><default><default><default>
csi_d0              = port:PG04<3><default><default><default>
csi_d1              = port:PG05<3><default><default><default>
csi_d2              = port:PG06<3><default><default><default>
csi_d3              = port:PG07<3><default><default><default>
csi_d4              = port:PG08<3><default><default><default>
csi_d5              = port:PG09<3><default><default><default>
csi_d6              = port:PG10<3><default><default><default>
csi_d7              = port:PG11<3><default><default><default>
csi_reset           = port:PH14<1><default><default><0>
csi_power_en        = 
csi_stby            = port:PH17<1><default><default><0>

  

android/device/softwinner/sugar-cubieboard2/camera.cfg文件:

;------------------------------------------------------------------------------- 
; 1 for single camera, 2 for double camera
;------------------------------------------------------------------------------- 

number_of_camera = 1

;------------------------------------------------------------------------------- 
; CAMERA_FACING_BACK
; gc0308 ov7670
;------------------------------------------------------------------------------- 

camera_id = 0

;------------------------------------------------------------------------------- 
; 1 for CAMERA_FACING_FRONT
; 0 for CAMERA_FACING_BACK
;------------------------------------------------------------------------------- 

camera_facing = 0

;------------------------------------------------------------------------------- 
; camera orientation (0, 90, 180, 270)
;------------------------------------------------------------------------------- 

camera_orientation = 0

;------------------------------------------------------------------------------- 
; driver device name
;------------------------------------------------------------------------------- 

camera_device = /dev/video1

;------------------------------------------------------------------------------- 
; device id 
; for two camera devices with one CSI
;------------------------------------------------------------------------------- 

device_id = 0

 

android/device/softwinner/sugar-cubieboard2/init.sun7i.rc文件:

# csi module
    insmod /system/vendor/modules/videobuf-core.ko
    insmod /system/vendor/modules/videobuf-dma-contig.ko
    insmod /system/vendor/modules/camera.ko
    insmod /system/vendor/modules/ov7670.ko
    insmod /system/vendor/modules/sunxi_csi1.ko
    #insmod /system/vendor/modules/uvcvideo.ko

 

android/device/softwinner/sugar-cubieboard2/ueventd.sun7i.rc文件:

# disp driver
/dev/disp                 	0777   	system     	system 
/dev/cedar_dev            	0666   	system     	system 
/dev/ace_dev              	0666   	system     	system 
/dev/ump      		0777   	system  		graphics
/dev/mali      		0777   	system  		graphics
/dev/ump      		0777   	system  		graphics
#/dev/video0     		0777   	system  		system
/dev/snd/pcmC0D0c     	0777   	system     	system
/dev/snd/pcmC0D0p    	0777  	system     	system
/dev/ttyUSB0     		0777   	system     	system
/dev/ttyUSB1     		0777   	system     	system
/dev/ttyUSB2     		0777   	system     	system
/dev/ttyUSB3     		0777   	system     	system
/dev/gps                  	0777   	system     	system
/dev/pa_dev        	0777  	system     	system
/dev/g2d        		0666  	system     	system
/dev/vmouse        	0666  	system     	system
/dev/sunxi_mem     	0666   	media      	media
/dev/video1       		0666  	media      	media

 

重新编译内核和源码,pack,生成img文件,烧到板子上,即可打开自动的摄像头程序。

 

驱动成功加载成功后lsmod:

通过命令" ls /dev/ "可看到video1设备节点

内核打印信息:

 

三、附加说明

1、/dev/video0与/dev/video1

[csi1_para ] csi_used = 1

# csi module

insmod /system/vendor/modules/videobuf-core.ko

insmod /system/vendor/modules/videobuf-dma-contig.ko

insmod /system/vendor/modules/camera.ko

insmod /system/vendor/modules/ov7670.ko

insmod /system/vendor/modules/sunxi_csi1.ko

需要/dev/video1节点,用于ov7670摄像头。

 

[csi0_para ] csi_used = 1

# csi module

insmod /system/vendor/modules/videobuf-core.ko

insmod /system/vendor/modules/videobuf-dma-contig.ko

insmod /system/vendor/modules/camera.ko

insmod /system/vendor/modules/ov7670.ko

insmod /system/vendor/modules/sunxi_csi0.ko

需要/dev/video0节点,用于gc0308等摄像头。

 

2、csi0与csi1

ov7670模块必须使用csi1,若使用csi0,驱动会加载不成功,不会产生/dev/video0节点。因此需把sys_config.fex文件里的[csi0_para ] csi_used = 0,[csi1_para ] csi_used = 1

 

3、 camera_list_para_used

[camera_list_para]中的camera_list_para_used不能置为1,置为1自动加载camera.ko会不成功,手动加载系统会卡死(这个暂时不知道原因)。

camera_list_para_used的使用是为了Camera模组能实现自适应功能,从而满足一个板子能够适应不同Camera模组,开启了该功能就可以实现Camera模组的自动检测,确认板子使用的Camera模组型号并保存相关参数供后面使用,关闭该功能即可恢复Camera模组固定配置的模式(camera_list_para_used = 0),我配置时只有一个ov7670,因此采用固定配置模式。

 

4、/dev/video1节点设置

在camera.cfg中指定/dev/video1节点和摄像头个数number_of_camera = 1
在ueventd.sun7i.rc中加入/dev/video1  0666  media  media

 

5、camera.ko

insmod /system/vendor/modules/videobuf-core.ko

insmod /system/vendor/modules/videobuf-dma-contig.ko

insmod /system/vendor/modules/camera.ko

insmod /system/vendor/modules/ov7670.ko

insmod /system/vendor/modules/sunxi_csi1.ko

 

camera.ko必须放在中间(模块间有依赖关系)。camera.ko是自动检测模块,不管camera_list_para_used是0还是1,都必须加载。如果没有camera.ko,sunxi_csi1.ko会加载不成功(这是我看过的所有有关A20摄像头配置资料都没提及的),原因是sunxi_csi1.ko依赖于camera.ko(区别于sun4i_csi1(sun4i_csi0),有关sun4i_csi的配置资料并没有加载camera.ko)。

camera_export_info存在

lichee/linux-3.4/drivers/media/video/sunxi_csi/camera_detector/camera_detect.c中。

在ubuntu下使用modinfo命令查看驱动模块的依赖:

 

 

6、调试

在windows调试时,使用360手机助手安装驱动。

adb root

adb shell

但无论当前控制台日志级别是何值,通过 /proc/kmsg (或使用dmesg)总能查看。另外如果配置好并运行了 syslogd 或 klogd,没有在控制台上显示的 printk 的信息也会追加到 /var/log/messages.log 中。

 

通过读写/proc/sys/kernel/printk文件可读取和修改控制台的日志级别。查看这个文件的方法如下:

#cat /proc/sys/kernel/printk

6   4   1   7 

上面显示的4个数据分别对应控制台日志级别、默认的消息日志级别、最低的控制台日志级别和默认的控制台日志级别。

可用下面的命令设置当前日志级别:echo 8 > /proc/sys/kernel/printk

/proc/sys/kernel/printk
该文件可以调节printk的输出等级,文件中有四个数字值。
(1) 控制台日志级别:优先级高于该值的消息将被打印至控制台。
(2) 默认的消息日志级别:用该优先级来打印未定义优先级的消息。
(3) 最低的控制台日志级别:控制台日志界别可被设置的最小值。
(4) 默认的控制台日志级别:控制台日志级别的默认值

 

printk 消息级别定义
#define KERN_EMERG "<0>" /*紧急事件,一般是系统崩溃之前的提示消息*/
#define KERN_ALERT "<1>" /*必须立即采取行动*/
#define KERN_CRIT "<2>" /*临界状态,通常涉及严重的硬件或者软件操作失败*/
#define KERN_ERR "<3>" /*用于报告错误状态,设备驱动会经常使用KERN_ERR来报告硬件错误*/
#define KERN_WARNING "<4>" /*对可能出现问题的情况进行警告,这类情况通常不会对系统造成严重问题 */
#define KERN_NOTICE "<5>" /*有必要进行提示的正常情形,许多与安全相关的状况用这个级别进行汇报*/
#define KERN_INFO "<6>" /*内核提示性信息,很多驱动程序在启动的时候以这个级别打印找到的硬件信息*/
#define KERN_DEBUG "<7>" /*用于调试信息*/
 
insmod: init_module 'xxx.ko' failed (Exec format error) 格式错误,kernel module 是认 kernel 版本的, 因为不同的 kernel 版本内部的 structure 可能不相同, 所以不同版本编译出来的 kernel module 不可以混用。这个错误是内核版本不对。insmod驱动的时候就是驱动和内核必须在同一版本环境编译,否则加载不上。

 

常用调试命令:

adb push D:\camera.ko /system/vendor/modules/

adb root

adb shell

cat /proc/version  查看内核版本

cat /proc/devices  列出字符和块设备的主设备号以及分配到这些设备号的设备名称

ls dev  查看可是使用的设备节点

lsmod  列出当前系统载入的模块

insmod /system/vendor/modules/camera.ko

rmsmod /system/vendor/modules/camera.ko

dmesg | grep sunxi_csi1

dmesg > /sdcard/kernel_log.txt

cat /proc/kmsg  与dmesg功能类似,dmesg只显示到目前为止的信息,而该命令会不断刷新

 

dmesg命令说明:

kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。

dmesg用来显示内核环缓冲区(kernel-ring buffer)内容,内核将各种消息存放在这里。在系统引导时,内核将与硬件和模块初始化相关的信息填到这个缓冲区中。内核环缓冲区中的消息对于诊断系统问题通常非常有用。在运行dmesg时,它显示大量信息。通常通过grep使用管道查看dmesg的输出,这样可以更容易找到待查信息。

参  数:
-c  显示信息后,清除ring buffer中的内容。
-s<缓冲区大小>  预设置为8196,刚好等于ring buffer的大小。
-n  设置记录信息的层级

Cubieboard2(四) 系统构建 —— 基于 mainline M,则表示该驱动将作为一个独立的模块编译,并且可以在需要时通过 insmod 或 modprobe 加载,键入 “M” 生效;尝试在升级内核后的 Cubieboard2 上安装 .deb 驱动包,但报错 linux-headers 问题以及 Invalid module format 问题,因此选择直接编译到内核中。linux-sunxi 基于 linux-3.4 内核修改,而 Tenda U2 V5.0(基于 aic8800 芯片)支持的 linux 内核版本为 V3.10-V6.2。 阅读详情

相关推荐

ov7670 v4l 驱动

ov7670 v4l 驱动 linux

cubieboard2 使用cedrus 硬解jpeg

demo: https://github.com/jemk/cedrus/tree/master/jpeg-test//2016-0324更新 https://github.com/linux-sunxi/cedarx-libs系统要求:modprobe sunxi_cedar_mod生成设备节点/dev/cedar_dev一些其他值得后续参考的链接 ////////// ref2 音视频编解

wuqingwei_blog 1684

Wi-Fi Sigma测试系统

Wi-Fi Sigma测试系统是Wi-Fi联盟(WFA)提出的一套全自动的WiFi认证测试系统,几乎涵盖的所有Wi-Fi的功能及性能(throughput)的自动化测试。该系统正逐步取代以前的WiFi认证测试系统。

Ke8323的博客 1万+

Cubieboard2(一) 官方镜像使用与配置

1)由于 Cubieboard2 发布于 2012 年左右,官方提供的镜像是基于 debian 7(wheezy),所以这里将 debian 的版本升级到较新稳定版 debian 11(bullseye)。可以看到,有 Server 版和桌面版,为了节省资源我选择 Server 版中的 datacard 版(即第 2 个镜像)。1)由于我想把 Cubieboard 当作服务器,两个 LED(绿、蓝)在夜里长亮影响睡眠,需要关闭。如果提示证书的问题,则将 https 替换成 http。

MicroMehhh的博客 1812

使用electron静默打印

使用electron静默打印 1.使用electron打印的理由 很多情况下程序中使用的打印都是用户无感知的。并且想要灵活的控制打印内容,往往需要借助打印机给我们提供的api再进行开发,这种开发方式非常繁琐,并且开发难度较大。 electron提供的打印api可以非常灵活的控制打印设置的显示,并且可以通过html来书写打印内容。 2.api ele...

w1366352655的博客 939

从工业夹爪到Shadow Hand:一文看懂机器人灵巧手的硬件进化史(附避坑指南)

本文详细解析了机器人灵巧手从工业夹爪到Shadow Hand的硬件进化历程,涵盖刚性夹持器、自适应夹持器到多指灵巧手的技术突破。文章还提供了选购指南与技术避坑策略,帮助读者根据操作复杂度和环境结构化程度选择最适合的解决方案,适用于制造业、医疗和服务业等多个领域。

weixin_29074409的博客 477

5.Licheepi投屏

Licheepi-投屏 本文是记录我根据坑网两位大佬的教程的配置流程。 参考:https://whycan.com/t_5462.html 内核:linux-zero-5.2.y buildroot:buildroot-2020.02.1(版本尽量和我一样,我之前使用buildroot2017.08.1的时候,没有配置项gst1-plugins-bayer2rgb-neon) 1.C...

cnqiuge123的博客 1137

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1590

论ov7670摄像头时钟走线的重要性

这几天把尘封已久的cubieboard A20拿出来吹吹灰,接上了OV7670摄像头模块。添加了ov7670的驱动,修改了部分寄存器的设置,编译,下载,调试。最后显示的效果是这样的,出现了很多绿色和红色的横纹。 因为我摄像头模块与cubieboard之间是用很多线连起来的,时钟线和数据线都在一起。后来看到了一些注意点,就把数据线单独挑出来,与数据线隔离开。 “1. 出现横向条纹   

大浪淘沙 4654

Orin 10G PHY网络分析

由于调试用的10G PHY,所以整理下分析过程; 1.从Orin devkit 丝印来看RJ45 对应J17 通过搜索 MGBE_PHY_A_N 找到连接的10G PHY, 原理图上标明了MDIO address 为0x0, 使用的PHY 芯片为 Marvel 的AQR113C, 主要特性: 架构: 关键特征: MDC 连接了GPIO26_XFI0_MDC; MDIO 连接了GPIO25_XFI0_MDIO; 通过pinmux_config映射表也可以..

乐于分享 5628

【3天快速入门WPF】1-从最简单的xaml开始

首先我们要知道xaml语法中声明即定义,意思就是“见到元素就相当于创建实例”,MainWindow.xaml的主干是一个元素里包含着一个 元素。这段程序就是在定义一个Window类的实例,这个实例的一个组成部分是一个Grid类的实例。

Zy100Papa的博客 1618

Cubie Board 2 A20 及其 qemu 仿真实现源代码架构

Cubie Board N, 其中 N = 1,2,3,4,5,6,7;是基于全志 Allwinner 公司的系列 SOC 设计的微型电脑,产品形态和市场都类似树莓派1,2,3,4,5等。

eloudy的专栏 645

基于Cesium实现,动态水面+大坝排水动画

一、绘制面状水域,使用水波纹理,进行渲染,水体透明,可以看到底色。三、使用粒子系统,将喷泉改变方向,加上重力设置,实现排水动画。二、绘制线状三维体,用作模拟大坝拦截效果。四、最后,模拟水位上升,进行淹没分析,

一醉千秋的专栏 1417

Cubieboard2(二) 系统构建 —— 基于 linux-sunxi

(一)工具安装:https://blog.csdn.net/wb4916/article/details/72898266(二)代码下载:https://blog.csdn.net/wb4916/article/details/72898747(三)Debian 基础系统配置:https://blog.csdn.net/wb4916/article/details/72899191。

MicroMehhh的博客 2058

搞定ESD(四):ESD干扰耦合路径深入分析(二)

静电放电过程中静电干扰主要通过三种间接耦合方式干扰敏感源,即电场耦合、磁场耦合、地弹。前文已经深入分析了静电放电过程中的电场耦合,今天就谈谈静电放电过程中的磁场耦合,也可以理解环路耦合。熟话说的好〝人往高处走,水往低处流〞,静电电流也会选择阻抗最低的路径返回到源端。静电电流流会源端的路径实际上就构成了电流环路,当敏感信号形成的电流环路与静电电流环路存在共环路时,就会将静电放电干扰耦合到敏感信号环路内,干扰敏感信号。

记得诚 2782

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

cubieboard2 android,在cubieboard2双卡版上从零构建Android4.2.2系统

板子买了一段时间,终于有时间可以玩玩了,论坛上找浪费了很多时间。把虚拟机环境搭建起来,编译好镜像就可以直接使用烧写工具烧写到TF卡上了。由于买的是双TF卡插槽,没有nand,所以只能在TF卡上制作镜像了。制作过程参考官方文档,好好总结一下,一来以后自己再做时图懒图方便,二来可以方便后来人。主要可以分为一下几个步骤:一、搭建编译环境可以在XP或win7系统上安装虚拟机,在虚拟机中安装交叉编译工具来编...

weixin_34961316的博客 411

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Cubieboard团队发布 “cubieboard2双卡版”开源硬件

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34307464的博客 487

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

cubieboard开发板简介

Cubieboard,简称Cb,是由珠海的Cubietech团队推出,跟业内有名的pcduino一样,Cubieboard是i基于珠海全志科技的A10/A20等系列处理器的开发板。Cubieboard初次生产是在2012年的8月8日,目前有三代产品,第一代是采用A10的基础版,其中有分8月8日生产的版本和9月9日生产的版本,第二代更换了双核处理器A20,并且经过测试可以稳定地运行在1.2Ghz上,

麒麟菜籽的专栏 4240

STM32F4驱动OV7670总结

之前因为贪图便宜买了一个7块钱的ov7670摄像头,然后想用我的stm32开发板驱动起来结合rtthread做个小项目出来,但是一路上遇到了许多问题,最终没能成功,在此记录一下用stm32驱动ov7670失败的过程。

八天一吨水的博客 6673

cubieboard刷机

我用的是cubieboard2(在cubieboard内部是cubieboard20),而cubietrunk好像

OSSRS 4601

CubieBorad2内核安卓系统编译笔记

环境配置 虚拟机安装,ubuntu-12.04.4-dvd-amd64.iso镜像。 安装JDK $ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" $ sudo apt-get update 上述全志提供的JDK安装方法,如不能成功安装,请参考如下: https://mp.csdn.n...

Niklaus_Lee的博客 456

编写了个videobuf-contig.c以获得物理上连续的大的内存(DMA)

编写了个videobuf-contig.c以获得物理上连续的大的内存(DMA) 转载:http://zhiqiang0071.cublog.cn --------------------------------------------    撰写了符合v4L2的s3c2440的camera驱动,采用videobuf模块管理视频内存,需要申请四个物理上连续的内存,但是linux内核

lqf785435771的专栏 1156

视频编解码(四):编辑器驱动移植步骤(VE)

一、添加cedarc_ve、cedarc_vp9驱动至内核代码 1) 将sun5oiw1p1_defconfig添加: CONFIG_MEDIA_SUPPORT=y CONFIG_VIDEO_ENCODER_DECODER_SUNXI=y CONFIG_VIDEO_GOOGLE_VP9_DECODER_SUNXI=y 2) Media/Kconfig需要添加下面的一句 config V...

TheDayIn_CSDN的博客 1522

Cubieboard开发环境、Uboot的SD启动卡制作、U-boot初步分析

拿到Cubieboard已经1周多了,平时上班比较忙,只能晚上玩一会,年关将近,周末都要加班呀.... 拿到一个板,若只刷别人给的Image学不到太多东西,于是自己一点一点来 首先是Uboot 移植,所谓移植,其实别人都做好了,我只不过是做了一个启动卡   系统环境:电脑二台,台式机XP;笔记本RHEL5,平时就用这个,懒得整ubuntu 代码工具:XP上:          Sourc

生命在于折腾 1万+

基于Video4Linux 的USB 摄像头图像采集实现 (转载来自戴小鼠)

做了一段时间的摄像头图像采集,有了一些心得。在论坛上开的2410摄像头问题专贴(http://www.hhcn.com/cgi-bin/topic.cgi?forum=1&topic=247&show=0)也得到了大家的关注。在此,我将这一阶段遇到的问题,解决方法等做个总结,希望

yuyin86的专栏 1676

Linux USB摄像头驱动【转】

本文转载自:http://www.itdadao.com/articles/c15a509940p0.html 在 cortex-a8 中,可接入摄像头的接口通常可以分为两种, CAMERA 接口和 USB 接口的摄像头。这一章主要是介绍 USB 摄像头的设备驱动程序。在我们印象中,驱动程序都是一个萝卜一个坑,拿到一个硬件就需要去安装它相对应的驱动程序。有时候稍有不对还...

2937
上一篇: A20,SPI配置
下一篇: Android JNI 之 JNIEnv 解析
lynchyo
博客等级 码龄18年 22粉丝 40原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值