IMX6ULarm9开发板推荐你们在用哪家的?推荐一下

【IMX6UL开发板试用体验】- 项目实战 前篇 平台总写 & 输入子系统 - 盈鹏飞嵌入式 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
【IMX6UL开发板试用体验】- 项目实战 前篇 平台总写 & 输入子系统
06:24:13  
本帖最后由
12:33 编辑
1. 本次实验的项目会用到platform 平台总线以及input输入子系统
2.什么是paltform总线
一个现实的linux设备和驱动通常都需要挂接在一种总线上,比较常见的总线有USB、PCI总线等。但是,在嵌入式系统里面,SoC系统中集成的独立的外设控制器、挂接在SoC内存空间的外设却不依附与此类总线。基于这样的背景下,2.6内核加入了platform虚拟总线。platform机制将设备本身的资源注册进内核,有内核统一管理,在驱动程序使用这些资源时使用统一的接口,这样提高了程序的可移植性。
3.什么是input子系统
Input驱动程序是linux输入设备的驱动程序,分成游戏杆(joystick)、鼠标(mouse和mice)、事件设备(event)。其中事件驱动程序是目前通用的驱动程序,可支持键盘、鼠标、触摸屏等多种输入设备。
----------------------------------------------------------------------
本次实战的过程,platform _driver 与 platform_device 的probe 过程,并通过App 模拟鼠标的位置(一个random函数,模拟鼠标x , y,并应该直接从鼠标传递,不过在项目实战前篇的开门篇 不想增加过多的难度,所以仅作为模拟)传输到驱动中,并上报了input 核心层给应用层采集信息。
platform_device
* platform_device.c
*& && &Author: chenpeng
#include &linux/module.h&
#include &linux/init.h&
#include &linux/platform_device.h&
#include &linux/mm.h&
#include &linux/slab.h&
#define GPIO_TO_PIN(bank, gpio) (((bank)*32) + (gpio))
static struct resource mouse_analog_source[] = {
& && && && && & [0] = {
& && && && && && && && &.flags = IORESOURCE_IRQ,
& && && && && && && && &.start = GPIO_TO_PIN(1, 27),
& && && && && && && && &.end = GPIO_TO_PIN(1, 27),
& && && && && & },
};
static struct platform_device mouse_analog_dev = {
& && && && && & .name = &irq_control&,
& && && && && & .id = -1,
& && && && && & .num_resources = ARRAY_SIZE(mouse_analog_source),
& && && && && & .resource = &mouse_analog_source,
};
static int __init platform_device_init(void)
{
& && &&&return platform_device_register(&mouse_analog_dev);
}
static void __exit platform_device_exit(void)
{
& && && &platform_device_unregister(&mouse_analog_dev);
}
module_init(platform_device_init);
module_exit(platform_device_exit);
MODULE_LICENSE(&GPL&);
再看platform_driver :
/*
* platform_driver.c
*& && &Author: chenpeng
#include &linux/fs.h&
#include &linux/input.h&
#include &linux/cdev.h&
#include &linux/device.h&
#include &linux/module.h&
#include &linux/init.h&
#include &linux/platform_device.h&
#include &linux/gpio.h&
#include &linux/errno.h&
#include &asm/uaccess.h&
#include &linux/irq.h&
#include &linux/interrupt.h&
#include &linux/input.h&
//#include &asm/bitops.h&
#define debug 1
#ifdef debug
#define DEBUG(...) printk(KERN_INFO #__VA_ARGS__) //printk()
#else
#define DEBUG(...) do{} while(0)
#endif
static unsigned int gpio_
stati
sta
static struct class *platform_
int kbuf[20];
static struct platform_device *myinput_
static struct input_dev *
*/
----------------以下是我写input的函数,------------------------------------
ssize_t mouse_analog_write(struct file *filp, const char __user *ubuf, size_t count, unsigned long *ppos)
{
& && &&&int x = 0;
& && &&&int y = 0;
& && &&&sscanf(ubuf, &%d%d&, &x,&y);
& && &&&printk(&x = %d, y = %d \n&, x, y);
& && &&&input_report_key(myinput, REL_X, x);
& && &&&input_report_key(myinput, REL_Y, y);
& && &&&input_sync(myinput);
& && &&&
}
static struct file_operations fops = {
& && && && && & .owner = THIS_MODULE,
& && && && && & .write = mouse_analog_write,
};
& &&&
static int mouse_analog_probe(struct platform_device *pdev)
{
& && &&&int ret = -1;
& && &&&DEBUG(&mouse_analog_probe is running\n&);
& && &&&struct resource *mouse_analog = platform_get_resource(pdev,& && &&&IORESOURCE_IRQ, 0);
& && &&&gpio_num = mouse_analog-&
& && &&&printk(&--------------------------------------gpio_num = %d -------------------------------\n&, gpio_num);
& && &&&ret = alloc_chrdev_region(&devno, 0, 1, &mouse_analog_platform&);
& && && && && & if (ret & 0){
& && && && && && && && &printk(&error\n&);
& && && && && && && && &ret = -1;
& && && && && && && && &goto fail1;
& && && && && & }
& && && && && & DEBUG(&platform1 is running \n&);
& && && && && & cdev_init(&cdev, &fops);
& && && && && & cdev.owner = THIS_MODULE;
& && && && && & ret = cdev_add(&cdev, devno, 1);
& && && && && & if (ret)
& && && && && & {
& && && && && && && && &printk(&error\n&);
& && && && && && && && &ret = -1;
& && && && && && && && &goto fail2;
& && && && && & }
& && && && && & platform_class = class_create(THIS_MODULE, &platform_mouse_analog_1&);
& && && && && & if (IS_ERR(platform_class))
& && && && && & {
& && && && && && && && &printk(&is error in platformclass \n&);
& && && && && && && && &ret = -1;
& && && && && && && && &goto fail3;
& && && && && & }
& && && && && & DEBUG(&platform is running \n&);
& && && && && & device_create(platform_class,NULL, devno, NULL, &platform_mouse_analog_2&);
& && && && && & //gpio_request(gpio_num, &mouse_analog_light&);
& && && && && & //gpio_direction_output(gpio_num, 0);
& && && && && & irq = gpio_to_irq(gpio_num);
& && && && && & if (irq & 0)
& && && && && & {
& && && && && && && && &printk(&-----------------------irq is fail--------------------- \n&);
& && && && && & }
& && && && && & ret = request_irq(irq, irq_control_func, IRQF_TRIGGER_FALLING, &myirq&, NULL);
& && && && && & if (ret & 0)
& && && && && & {
& && && && && && && && &printk(&request_irq is fail \n&);
& && && && && && && && &ret = -1;
& && && && && && && && &goto fail4;
& && && && && & }
& && && && && & myinput = input_allocate_device();
& && && && && & if (!myinput) {
& && && && && && && && && && &&&ret = -1;
& && && && && && && && && && &&&goto fail4;
& && && && && && && && && && &&&printk(&request input is fail \n&);
& && && && && && && && && && &&&}
& && && && && & DEBUG(&platform3 is running \n&);
& && && && && & //myinput-&name = &my_input&;
& && && && && & set_bit(EV_REL, myinput-&evbit);
& && && && && & set_bit(REL_X, myinput-&relbit);
& && && && && & set_bit(REL_Y, myinput-&relbit);
& && && && && & DEBUG(&platform2 is running \n&);
& && && && && & ret = input_register_device(myinput);
& && && && && & if (ret){
& && && && && && && && &printk(&input_register_device is fail \n&);
& && && && && && && && &goto fail5;
& && && && && & }
& && && && && & DEBUG(&platform5 is running \n&);
& && && && && & if (IS_ERR(myinput_platform)){
& && && && && && && && &printk(&platform_device_register_simple is fail \n&);
& && && && && && && && &ret = -1;
& && && && && && && && &goto fail5;
& && && && && & }
& && && && && & DEBUG(&platform6 is running \n&);
& && && && && & printk(&probe func is running ending \n&);
& && && && && & return 0;
& && && && && & fail5:
& && && && && && && && &input_free_device(myinput);
& && && && && & fail4:
& && && && && && && && &free_irq(irq, NULL);
& && && && && & fail3:
& && && && && && && && &class_destroy(platform_class);
& && && && && & fail2:
& && && && && && && && &cdev_del(&cdev);
& && && && && & fail1:
& && && && && && && && &unregister_chrdev_region(devno, 1);
& && && && && &
}
static int mouse_analog_remove(struct platform_device *pdev)
{
& && &&&device_destroy(platform_class, devno);
& && &&&class_destroy(platform_class);
& && &&&input_unregister_device(myinput);
//& && &&&platform_device_unregister(myinput_platform);
& && &&&cdev_del(&cdev);
& && &&&printk(&num = %d \n&, irq);
& && &&&free_irq(irq, NULL);
& && &&&unregister_chrdev_region(devno, 1);
& && &&&return 0;
}
static struct platform_driver mouse_analog_drv = {
& && && && && & .driver ={
& && && && && && && && && && &&&.name = &irq_control&,
& && && && && && && && && && &&&.owner = THIS_MODULE,
& && && && && & },
& && && && && & .probe = mouse_analog_probe,
& && && && && & .remove = mouse_analog_remove,
};
static int __init platform_driver_init(void)
{
& && &&&return platform_driver_register(&mouse_analog_drv);
}
static void __exit platform_driver_exit(void)
{
& && &&&platform_driver_unregister(&mouse_analog_drv);
}
module_init(platform_driver_init);
module_exit(platform_driver_exit);
MODULE_LICENSE(&GPL&);
复制代码最后看app函数:/*
* app.c
*
*& && &Author: chenpeng
*/
#include &stdio.h&
#include &sys/types.h&
#include &sys/stat.h&
#include &fcntl.h&
#include &stdlib.h&
#define FILE_NAME &/dev/mouse_analog2&
int main(void)
{
& && &&&int fd, x ,y;
& && &&&char buf[20];
& && &&&fd = open(FILE_NAME, O_RDWR);
& && &&&if (fd & 0)
& && &&&{
& && && && && & printf(&open is error \n&);
& && && && && & return -1;
& && &&&}
& && &&&/*
& && &&&while(1){
& && && && && & x = random()%20;
& && && && && & y = random()%20;
& && && && && & sprintf(buf, &%d %d&, x, y);
& && && && && & printf(&buf = %s \n&, buf);
& && && && && & write(fd, buf, 20);
& && && && && & //fsync(fd);
& && && && && & sleep(1);
& && &&&}
& && &&&*/
& && &&&printf(&~~~~~~~~~~~~~success~~~~~~~~~~~~\n&);
& && &&&return 0;
}复制代码
这就是全部的代码,下面一节将写关于USB的驱动,与小米手机连接
18:13:34  
实战必须是干货&&感谢分享
09:38:21  
很好的,点个赞!
15:58:23  
……这一大段代码贴的,代码可读性较差呀
只有小组成员才能发言,
16个成员聚集在这个小组
创建小组步骤
创建小组创建自己的地盘
个性设置精心打造小组空间
邀请好友邀请好友加入我的小组
小组升级小组积分升级赢得社区推荐
Powered by
供应链服务
版权所有 (C) 深圳华强聚丰电子科技有限公司天嵌 NXP iMX6UL开发板 ARM Cortex-A7开发板 超开发板
手机查看产品信息
订货量(件)
价格(元/件)
供货总量:
广东省/广州市
自买家付款之日起7天内发货
扫码发送给微信好友
“天嵌 NXP iMX6UL开发板 ARM Cortex-A7开发板 超开发板”参数说明
是否有现货:
嵌入式计算机主机板
182.49*112.47*18mm
专用定制包装
“天嵌 NXP iMX6UL开发板 ARM Cortex-A7开发板 超开发板”详细介绍
TQIMX6UL是基于恩智浦(NXP)IMX6ULtraLite Cortex-A7 MPCore™推出的一款新产品平台,运行主频528MHz,平台主要应用方向为工业控制,医疗设备等行业。整体采用工业级设计,外围功能接口采用3.5mm绿色端子,接口稳定可靠。平台采用核心模块与外扩底板方式,核心模块采用B2B高速接口方式,体积小,抗震及稳定性高。
TQIMX6ULB核心板体积小、功耗低、使用方便 核心板接口采用B2B高速接口,尺寸仅为50*40*7mm;6层沉金工艺,布局、布线充分考虑EMC、EMI
底板设计满足工业环境使用要求,外围接口采用工业标准,接口统一。
可应用于工业控制,医疗电子,数据采集,网络节点,仪器仪表,数字终端,手持仪器,数据通迅,消费电子,安全防护等领域。
天嵌科技提供专业嵌入式板卡和行业解决方案。如有需要,可以联系天嵌科技的销售人员。 销售电话:020-73101 技术支持:020-7/810 详细资料:http://www.embedsky.com/index.php?g=home&m=product&a=show&id=102 官方淘宝:https://embedsky.taobao.com
“天嵌 NXP iMX6UL开发板 ARM Cortex-A7开发板 超开发板”其他说明
i.MX6UL底板
i.MX6UL CoreB核心板
USB下载线,串口线
与“天嵌 NXP iMX6UL开发板 ARM Cortex-A7开发板 超开发板”相关的产品信息
您当前访问的产品需要授权才能查看,请尝试用密码访问或索取密码。联系人:李明
公司名称:
MCIMX6ULL-EVK 开发板套件 编程器
最近被加入的企业
名片夹还没有企业信息,赶紧查看企业联系方式加入吧!
『河北聪超电子科技有限公司』的联系方式为,010-,联系人:李明
开发优质精品供应商推荐
所在地:上海
服务内容:成分分析,配方还原,原材料贸易,孵化器,工业诊断,产品开发
公司名称:凯思普科技有限责任公司
服务对象:化工行业
采用设备:光谱,质谱,色谱
我们的优势:一站式落地服务
分析周期:7天
认证信息:认证企业
品牌:NXP USA Inc.型号:MCIMX6ULL-EVK类型:开发套件,编程器件用途:EVAL KIT FOR I.MX6ULL加工定制:否
以上是MCIMX6ULL-EVK 开发板套件 编程器的详细介绍,包括MCIMX6ULL-EVK 开发板套件 编程器的价格、型号、图片、厂家等信息!
型号: MCIMX6ULL-EVK 品牌: NXP USA Inc. 描述: EVAL KIT FOR I.MX6ULL 河北聪超电子科技海外代购全系列开发套件,包括一些比较高的级别。一片起订。直线电话:电话:010-...
商机库包括所有采购、招标信息的汇总
与MCIMX6ULL-EVK 开发板套件 编程器相关的产品信息
MCIMX6ULL-EVK 开发板套件 编程器产品相关搜索
最新其他电子元器件产品
按排行字母分类:
*联系电话:
*短信验证:
允许同品类其他优质供应商联系我客户端下载
发送验证码
未注册的用户手机验证后自动登录
30天内免登录
社交账号登录
绑定手机号
发送验证码
iMX6UL单核核心板Cortex-A7嵌入式开发板
topeet2016
iMX6核心板出新品啦,iMX6UL单核核心板,核心板超精致,尺寸仅38mm*42mm ;CPU型号iMX6UL@ 528MHz ARM Cortex-A7架构 ;内存:512M DDR ;存储:8G EMMC,另有双核,四核核心板,满足各种产品需求哦,通过CE/FCC认证,十年供货,大家可以进入详情页观看具体参数哦:https://item.taobao.com/item.htm?spm=a1z10.5-c.w131.15.6cf2e622xYJSzf&id=尺寸:38mm*42mmCPU:iMX6UL 主频528MHz ARM Cortex-A7架构 单核 内存:512MDDR3 存储:8G EMMC工作电压:5V电压供电系统支持:Linux操作系统运行温度:-20℃ ~ +80℃引脚间距:1.27mm引角扩展:i.MX6功能全部引出,146PIN脚连接方式:邮票孔PCB:6层沉金工艺iMX6UL开发板-i.MX6UL-飞凌嵌入式
||||||||||||
||||||||||||||||
||||||||||||
||||||||||||||||||||||
Cortex-A7系列开发板您所在的位置:&&&&&&&&&
OKMX6UL-C2工业级开发板
产品简介:
CPU:NXP i.MX6UltraLite架构:ARM Cortex-A7&主频:528MHz内存:256MB LvDDR3ROM:256M NandFlash系统:Linux 3.14.38
&span style=&color: rgb(38, 38, 38);&&&span style=&color: rgb(38, 38, 38);&&iMX6UL开发板 OKMX6UL-C3工业级开发板 飞凌嵌入式/title&&/span&&/span&OKMX6UL-C2工业级开发板FETMX6UL-C是一款基于NXP(原Freescale)i.MX 6UltraLite Cortex-A7架构处理器设计的核心板,运行主频528MHz,核心板采用两组优质进口80Pin板对板连接器设计,独特的电源管理架构相比ARM9系列核心板功耗更低。严酷的温度等级测试确保核心板在-40℃~85℃环境中稳定运行。最大支持8路UART、2路以太网、2路CAN等工业级总线接口;核心板标配工业级256MB RAM,256MB NandFlash(支持商业级512MB RAM,4GB eMMC配置)。核心板板外设丰富,最多支持8路UART,2路CAN及其它总线接口。丰富的光盘资料,稳定的售后技术支持,加快产品设计速度。供货稳定,最长超过十年的产品生命周期,无后顾之忧。&OKMX6UL-C2底板工业级设计,并且尺寸小巧仅100mm×73mm&,板载LCD、100M PHY、USB Host、USB OTG、RTC、SD卡、拨码开关、LED灯,41个GPIO (2.54mm间距双排插针引出)等功能,极具性价比优势非常适合工程师评估测试,产品应用开发。体积小巧配置灵活长宽仅为40mm*50mm,6层PCB沉金工艺,两组优质防误插板对板连接器极快的启动时间经由飞凌软件工程师深度优化裁剪的Linux系统,从核心板通电到QT界面点亮仅需要4.6-7.8秒,创造更多可能!注:默认发货为标准Linux系统& & & & & &功耗,没有最低,只有更低!FETMX6UL-C核心板相比ARM9、ARM11系列核心板功耗直降50%工业级设计核心板FETMX6UL-C核心板采用全工业级芯片设计,并经过严格的高低温-40℃~85℃实验测试8路串口 2路网口 2路CAN连接世界业内支持串口数量最多的CPU,同时还能支持2路双冗余网络,2路高实时性CAN-bus总线。媒体播放 数字摄像板载IIS接口,WM8960音频芯片音乐歌曲任意播,支持数字摄像头OV9650安全加密双防护加密方案一:CPU自带安全启动防窃取机制,可防止第三方用户任意刷机植入木马病毒窃取用户信息&加密方案二:CPU自带ISO7816第三方认证加密接口,交易更安全&&&&&&&&& &&&&&&&&&&&&&&&&&&&&&&多功能引脚配置更灵活,极限配置随您选!方便设计各种功能配置底板,让行业不再局限注:以上为硬件引脚配置参考方案,用户需重新设计底板及软件或与飞凌嵌入式合作开发。 & & & & & & & & &&免费提供以上四种方案《核心板引脚配置表》,您可联系在线客服索取。& && & & & & & & &&一款底板工业商业全支持支持FETMX6UL-C(NandFlash 工业级和eMMC 商业级)两种核心板PCB尺寸:100mm×73mm固定孔尺寸:间距:93mm×66mm,孔径:3mm制版工艺:厚度1.6mm,2层PCB电源电压:直流5VOKMX6UL-C2工业级开发板&最具性价比优势的开发板,售价仅277元!开发板接口示意图OKMX6UL-C2开发板用户自定义接口推荐功能配置详情如下:推荐方案1推荐方案2推荐方案3& & & & 1路音频 & & & & &1路串口 & & & &&& & & & 2路I2C & & & & & 2路SIM卡& & & & 2路SPI & & & & & 2路PWM& & & &&2路CAN & & & &13路GPIO & & &&& & & & & 1路音频 & & & & &&2路SPI& & & & & 2路5线串口 & & &4路三线串口& & & & & 2路PWM & & & & 1路I2C& & & & & 12路GPIO& & 7路3线串口 & & &2路CAN && & 1路摄像头 & & & &17路GPIO注:以上为硬件可实现功能,用户需重新配置驱动。 & & &&更多iMX6UL用户自定义接口功能配置清单,您可联系飞凌嵌入式在线客服咨询。 & &&& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &FETMX6UL-C核心板参数CPUNXP&单核 i.MX6ULCAN2路架构Cortex-A7USB&2路主频528MHzSD/MMC/SDIO2路内存512MB LvDDR3(商业级) & & & & & & &256MB LvDDR3(工业级)Ethernet2路 10/100兆以太网ROM4GB eMMC(商业级) & & & & & & & & & 256MB NAND FLASH (工业级)UART/IrDA8路工作电压&5V电压供电EINT/GPIO支持图形处理器PXPVideo Coder软件编解码尺寸50mm*40mmEBI BUS支持连接方式板对板连接器JTAG支持操作系统Linux 3.14.38Camera1个 5M像素并口LCDRGB&24位PWM8路Audio3路ADC10路I2C4路ISO7816-32路SPI4路Keypad Port8*8QSPI1路SPDIF1路OKMX6UL-C2 工业级开发板参数LCD1路&RGB565 16位PWM1路&用于液晶背光调节USB Host1路&USB 2.0ADC4路&用于电阻触摸板USB OTG1路&USB 2.0IIC1路Ethernet1路&10/100Mbps自适应,RJ-45 接口UART Debug1路&&DB9接口SD Card1路&兼容 SD、SDHC和SDXC(UHS-I)JTAG Debug1路&&插针引出(空焊)LED4路GPIO39路(空焊)复位1路电源5V主电源RTC支持拨码开关按键方式设置启动模式i.MX6UL开发板软件资源提供,详见FETMX6UL-C核心板软件参数,请点击查询嵌入式硬件设计手册、嵌入式Linux开发手册、嵌入式开发环境搭建手册、接口驱动程序、应用开发示例等,一切应有尽有只为您更方便开发产品。5x24小时技术支持热线、技术交流论坛、技术支持邮箱,随时待命只为您的产品保驾护航。OKMX6UL-C开发板通过CE FCC RoHS认证广泛适用于工控、医疗、多媒体、安防、车载、金融、教学、电力、通讯、、充电桩、智能家居、消费电子、手持设备、显示控制等领域
Copyright ©
保定飞凌嵌入式技术有限公司 All Rights Reserved&&

我要回帖

更多关于 安卓开发板推荐 的文章

 

随机推荐