当前位置:  编程技术>移动开发
本页文章导读:
    ▪syszuxpinyin与InputMethodSrc输入法移植到S3C6410手持方案机下        syszuxpinyin与InputMethodSrc输入法移植到S3C6410手持方案机上       syszuxpinyin与InputMethodSrc程序都是开源项目的输入法,前者是拼音输入法,后者是手写输入法,感兴趣的朋友可以自己网上查资料.........
    ▪ 网络方式:GSM,WCDMA,CDMA2000什么意思        网络模式:GSM,WCDMA,CDMA2000什么意思 这些都是移动电话标准。 全球超过200个国家和地区超过10亿人正在使用GSM电话。GSM标准的无处不在使得在移动电话运营商之间签署"漫游协定"后用户的国际漫.........
    ▪ MQX3.8源代码分析:GPIO(一)       MQX3.8源代码分析:GPIO(1)mqx3.8是飞思卡尔芯片专用的类linux操作系统,这里以kenitis系列ARM cortex M4内核的MK60N512为专属芯片来进行深入解读。 操作GPIO口的代码如下: GPIO_PIN_STRUCT pins1[] = .........

[1]syszuxpinyin与InputMethodSrc输入法移植到S3C6410手持方案机下
    来源: 互联网  发布时间: 2014-02-18
syszuxpinyin与InputMethodSrc输入法移植到S3C6410手持方案机上

       syszuxpinyin与InputMethodSrc程序都是开源项目的输入法,前者是拼音输入法,后者是手写输入法,感兴趣的朋友可以自己网上查资料。

       做嵌入式系统应用的朋友对它们应该都不陌生,不管怎么说,任何系统总得有文字互动的吧。我的系统是基于QT4.7.0框架开发的。那么,这两个输入法正好也都是针对QT程序而设计,这样一来就刚好对口了。

       首先是拼音输入法的移植。QT4系统服务器上有一个输入法调用的API接口,我们就可以通过该接口实现自定义输入法。syszuxpinyin源码已经实现了基本的按键操作和上层交互的API接口,在这里我们仅需在主程序里面定义和引用syszuxpinyin的类并与QT服务器进行联接。这个过程完成以后,我们就可以试着打开一个编辑窗口,此时QT服务器会接收到一个焦点事件,进而通过API接口调用下层(即我们设计)的输入法。以下是拼音输入法应用截图。觉得怎样呢?好评一个吧,哈哈!


接下来是手写输入法移植,其实手写输入法移植方法同前面差不多,我在此就不多述了,直接的上效果图如下。




朋友们觉得怎样呢,QT4的程序是不是很棒哦!,哈哈!!如果对本人的方案机系统感兴趣可见我另一篇博文。

453722265@qq.com




    
[2] 网络方式:GSM,WCDMA,CDMA2000什么意思
    来源: 互联网  发布时间: 2014-02-18
网络模式:GSM,WCDMA,CDMA2000什么意思
这些都是移动电话标准。
全球超过200个国家和地区超过10亿人正在使用GSM电话。GSM标准的无处不在使得在移动电话运营商之间签署"漫游协定"后用户的国际漫游变得很平常。 GSM 较之它以前的标准最大的不同是他的信令和语音信道都是数字式的,因此GSM被看作是第二代 (2G)移动电话系统。GSM就是全球移动通讯系统(Global System of Mobile communication)。中国移动全球通采用此技术。

WCDMA 是英文Wideband Code Division Multiple Access(宽带码分多址)的英文简称,是一种第三代无线通讯技术。目前中国联通采用的此种3G通讯标准。

CDMA2000(Code Division Multiple Access 2000) 是一个3G移动通讯标准,国际电信联盟ITU的IMT-2000标准认可的无线电接口,也是2G cdmaOne标准的延伸。 CDMA2000与另一个3G标准WCDMA不兼容。目前我国电信采用此标准。

    
[3] MQX3.8源代码分析:GPIO(一)
    来源: 互联网  发布时间: 2014-02-18
MQX3.8源代码分析:GPIO(1)
mqx3.8是飞思卡尔芯片专用的类linux操作系统,这里以kenitis系列ARM cortex M4内核的MK60N512为专属芯片来进行深入解读。
操作GPIO口的代码如下:
    GPIO_PIN_STRUCT pins1[] = 
     {
         BSP_LED2,
         GPIO_LIST_END
     };
    MQX_FILE_PTR port_file1 = NULL;
    /* open file containing pin1 set of pins/signals */
    if (NULL == (port_file1 = fopen("gpio:write", (char_ptr) &pins1 ))) 
    {
        printf("Opening file1 GPIO for pins1 failed.\n");
       _task_block();
    }
   
     /* write logical 1 to all signals in the file (fast) */
    if (IO_OK != ioctl(port_file1, GPIO_IOCTL_WRITE_LOG1, NULL ))
    {
        printf("Writing to whole file1 failed.\n");
       _task_block();
    }
 分析:
pins1数组定义了要使用的io口序号;“gpio:write”表示以gpio口的方式打开该引脚,因为在芯片中,几乎每个引脚都可以进行多路复用,需要明确的指出打开方式;fopen函数以用户指定的方式打开并初始化特定引脚,并且返回文件指针。
关键点就是fopen函数是多个模块打开函数的统一入口,在该函数内部又有多路分支,打开对应的模块,这也是mqx与linux相似的地方。

进一步追踪发现(fio.h):
  	#define  fopen      _io_fopen  
	extern MQX_FILE_PTR _io_fopen(const char _PTR_, const char _PTR_);
	那么:port_file1 = fopen("gpio:write", (char_ptr) &pins1 );等价于port_file1 = _io_fopen("gpio:write",(char_ptr) &pins1);
_io_fopen函数的具体实现位于io_fopen.c中,同理其他相关函数也都在以各自函数名命名的单个文档中。

我们之所以能够轻松的调用函数操作io口,mqx底层肯定做了其他相关准备工作。打开io_gpio.c文档,有函数


如下:
/*FUNCTION*-------------------------------
 * 
 * Function Name    : _io_gpio_install
 * Returned Value   : _mqx_uint a task error code or MQX_OK
 * Comments         :
 *    Install a gpio driver.
 *
 *END*----------------------------------*/
 
 _mqx_uint _io_gpio_install
    (
       /* [IN] A string that identifies the device for fopen */
       /* input values are those identifiers defined in io_gpio.h file */
       char_ptr            identifier
    ) 
 { /* Body */
     if (IO_OK == gpio_cpu_init())
         return _io_dev_install(identifier, 
             _io_gpio_open,
             _io_gpio_close,
             _io_gpio_read,
             _io_gpio_write,
             gpio_cpu_ioctl,
             NULL);
     return (_mqx_uint)IO_ERROR;
 } /* Endbody */
 
这就是gpio驱动安装函数,由mqx调用,负责安装open、close、read、write、ioctl函数而我们平常的用到的函数,在内部都是调用的这些函数,这些函数在mqx内核进行了注册。

那什么时候进行gpio驱动的注册呢?打开init_bsp.c文件,在“ uint_32   _bsp_enable_card(void)”函数中
 /* Install the GPIO driver */
 #if BSPCFG_ENABLE_GPIODEV
     _io_gpio_install("gpio:");
 #endif
 
这个预处理标志是不是眼熟,他就是user_config.h中定义的宏。这些宏负责在mqx的bsp模块编译时,选择性的加载合适的模块。
当我们把BSPCFG_ENABLE_GPIODEW置为0,GPIO模块便不再陪加载。这样做的好处是,编译内核时,可以去掉不必要的模块,节省空间。
最后把目光定位在了uer_config.h中,该文件可以由用户修改,决定模块注册情况。







    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3