- 博客(55)
- 资源 (5)
- 收藏
- 关注
原创 解决CentOS yum安装Mysql8提示“公钥尚未安装”或“密钥已安装,但是不适用于此软件包”的问题
使用下面的命令安装Mysql 8.0yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpmyum install mysql-community-server执行第二句安装的过程中出现下面的错误:再次执行第二句安装命令出现下面的提示:这个时候可参考官网的做法:链接https://dev.mysql.com/doc/refman/8.0/en/checking-
2022-04-12 08:55:43
16461
8
原创 解决Activiti6在linux环境中流程图的中文不显示的问题
使用Activiti6工作流引擎,制作了流程图后,Windows环境测试正常,流程图显示正常。但项目部署到linux环境后,发现生成的流程图的中文没有显示出来,只显示了框框和线条。如下:通过度娘,参考https://www.cnblogs.com/liughost/p/4369265.html对linux环境的java配置了字体就可以正常的显示出中文了。具体配置如下:1. 在 /usr/lib/j...
2018-04-14 17:58:54
3684
原创 lua-gd 安装(ubuntu)
需要使用lua来弄一个生成文字图片的工具,这里用到了lua-gd的库。具体的安装如下:下载地址:https://ittner.github.io/lua-gd/manual.html#download下载解压后,进到对应的目录,执行命令:makemake成功后,执行:sudo make install如果中间出现错误的话,请把下面的几
2016-04-01 11:11:55
2698
原创 实现c# 直接连接Oracle数据库操作,不用安装各种插件
在c#中连接oracle数据库,遭遇了各种痛苦。采用VS默认的方式连接oracle发现有版本限制,而且还需要安装oracle的客户端,否则连接不了。客户端的版本与Oracle数据库的版本对接不上也连接不了。在网上也找了很多,尝试过使用ODP.NET来连接,发现一样不行,就连引用dll后,一跑就会报错。麻烦死了。最终,找到了一种方法,使用第三方的库来实现,找了一个破解版的。测试之
2015-06-02 17:04:51
4190
原创 C# int32与byte[] 互转 / C/C++ int与BYTE[]互转
在某些时刻,我们需要对32位的int类型数据转换成byte数据进行传输、存储等。这时,就需要把 32位的int类型数据转存到 4个字节的byte数组中,或者是从4个字节的byte数组中转存为32位的int类型数据。在C/C++中,我们可以直接使用memcpy()函数来实现,但是在C#中却没有函数可以直接把 32位的int类型数据转换成byte数据。C#: 32位的int类型数据
2014-01-23 10:02:16
40651
4
原创 WINCE6 添加唯一的设备ID 用户不可修改
CE设备上要加上一个设备唯一码的功能,就是设备的ID,用于识别该唯一的设备。唯一码应该只有生产商具有可写权限,用户只有只读权限。而且必须是非易失性的,那么就必须存放在Nandflash之类的存储器上。这样子的话,就有几种方法可用:1、专门开辟一个物理块用于存放该数据2、参考LoongEmbedded说的在TOC中添加设备的ID信息以上两种方法都涉及到Eboot和
2013-10-10 22:57:36
3315
原创 【原创】从零开始——Android 4.0 实现recovery模式,出厂设置功能
在移植recovery之前,我们需要知道为什么需要移植recovery?1、需要实现恢复出厂设置功能2、需要实现recovery升级功能(主要是方便用户自己定制ROM)在移植这个recovery的时候遇到了N多的问题,没人指导,没有可供参考的书籍,只有度娘和谷歌陪伴。下面将会提到一些典型会遇到的问题。如何进入recovery?1、开机的时候按下组合按键2、在
2013-08-22 11:12:02
6275
原创 Android 驱动开发系列五
这一篇将说到 如何为JNI接口(Frameworks层)添加对应的service访问服务 在Android系统中,硬件服务一般是运行在一个独立的进程中为各种应用程序提供服务。因此,调用这些硬件服务的应用程序与这些硬件服务之间的痛惜需要通过代理来进行。为此,我们需要先定义好通信的接口。 1、定义通信接口进入到android-4.0.4_r1.2/frameworks/base
2013-04-11 14:47:22
6640
原创 Android 驱动开发系列三
写blog的时候,发现跳章了,HAL硬件抽象层都没有写就到JNI了,这里补回来。 1、添加HAL头文件进入到 android-4.0.4_r1.2/hardware/libhardware/include/hardware 目录,创建 ttt.h 文件:root@brantyou-ubuntu:~/workspace/android-4.0.4_r1.2/hardware/libh
2013-04-10 17:22:33
5517
原创 Android 驱动开发系列四
时隔多日,终于都抽出时间来写blog了。废话不多说,接着上一篇,这里将介绍如何编写HAL层(硬件抽象层)对应的JNI方法。这里提到的都是在ICS源码里编译的。 1、定义JNI层接口进入到android-4.0.4_r1.2/hardware/libhardware/include/hardware目录,并创建 ttt.h 文件,内容如下:#ifndef ANDROID_TTT_
2013-04-10 11:14:18
6124
1
原创 Android 驱动开发系列二
最近琐碎事太多了,都没什么时间来写blog。现在继续写这个android驱动的开发调试这一章主要是讲如何测试驱动。 1、驱动的简单测试在上一篇文章中,我们已经把添加驱动模块做完了,并把驱动下载到了板子上。下面将介绍一下如何测试驱动是否正常。这个ttt驱动,我们实现了一个读、一个写的接口,就此进行简单的测试:启动板子,进入系统,然后进入命令行(可以用串口,也可以用adb sh
2013-04-02 11:13:58
9756
1
原创 Android 驱动开发系列一
最近开始接触Android底层的开发,这里面将记录开发一个驱动以及到测试的全过程。 首先,需要搭建Android的开发环境。我这里采用的是Ubuntu 11.04 64bit的系统,里面使用gcc-4.4,Android 4.0.4源码,硬件是S5PV210。搭建环境这一步就不说了。其次,编译好u-boot、kernel和ICS。最后,开始确定要编写什么驱动。 由于我这
2013-03-21 13:58:19
23320
1
原创 解决 需要的目标“out/target/product/generic/obj/lib/liblog.so”。 停止。
在编译Android 4.0的HAL层时,出现下面的错误信息:root@brantyou-ubuntu:~/workspace/android-4.0.4_r1.2# mmm hardware/libhardware/modules/hello/============================================PLATFORM_VERSION_CODENAME=R
2013-03-15 14:37:30
17738
1
原创 Android驱动入门系列(一)
Android驱动入门系列(一) —— Android驱动简介及编写第一个Android驱动 以下文章参考网上搜到的《Android驱动开发全过程(有图有真相)》一文,其中根据自己的实际编写情况作了部分修改,不用作商业用途前言意外在网上发现了这扁文章,看后感觉很有必要分享,所以整理并上传,希望大家喜欢。Android 硬件抽象层(HAL)概要介绍和学习计划Android
2013-03-08 17:07:41
27533
10
原创 error: 'struct proc_dir_entry' has no member named 'owner'的解决方法
在编译Android 4.0驱动的时候,使用到了proc_dir_entry结构体中的owner成员,但是编译的时候,却出现了下面的错误:drivers/hello/hello.c:217: error: 'struct proc_dir_entry' has no member named 'owner'make[2]: *** [drivers/hello/hello.o] 错误 1
2013-03-08 16:20:52
11094
3
原创 编译Android驱动对应的C测试程序出错的解决方法以及正确流程
编写好驱动之后,另外写了个C程序来测试驱动,但是在编译的时候,出现了如下的错误:build/core/base_rules.mk:166: *** frameworks/base/opengl/libs: MODULE.TARGET.ETC.egl.cfg already defined by development/tools/emulator/opengl/system/egl。 停止
2013-03-08 14:45:27
3427
原创 总结Android HAL层的使用方法
1、使用HAL的方法下面以Sensor传感器为例介绍使用HAL的方法,具体流程如下所示。 step1. Native code通过 hw_get_module 调用 HAL stub。hw_get_module( LED_HARDWARE_MODULE_ID, (const hw_module_t**)&module)step2. 通过继承 hw_module_method
2013-03-07 14:13:20
5030
原创 wince c# Timer的使用
step 1:定义TimerSystem.Windows.Forms.Timer mTimer = new System.Windows.Forms.Timer();step 2:初始化定时器mTimer.Tick += new EventHandler(TimerEventProcessor); // 设置定时器处理函数 mTimer.Interval
2013-01-28 14:54:20
4827
原创 6410 Eboot 显示图片
在Eboot里面显示图片,如果要显示一些非全屏大小的图片,感觉不是很爽,所以封装了几个函数,用于显示图片,或者画图用。屏幕大小是320*240的,这样的屏幕,画的时候在屏幕的左上角开始往右边画,画完一行,接着画下一行。要显示的图片,需要先转成对应的数组。这里使用的是bmp2c.exe软件。由于,屏幕打竖来放,即变成240*320。这样子的话,做出来的图片需要逆时针旋转90度之后,才能够转换成对
2012-12-25 14:02:14
1111
原创 6410 Eboot 添加键盘控制
升级的时候,需要搞个提示,加个键盘控制神马的。所以,咱得把这个键盘加到Eboot里面。由于Eboot里面使用不了这个中断,所以只能使用扫描按键的方式。按键接的是:行:GPK8~GPK13列:GPL0~GPL4(这里只需要使用到一列就够了,就使用GPL0吧,这样就有6个按键了)参照键盘驱动KeyPad,这里把其简化,分成初始化和循环扫描处理,按键识别三部分。
2012-12-25 13:51:05
1242
原创 wince USB HUB 使用注意
在ce上使用了hub集线器之后,USB驱动要注意几点:1、传输buffer要确定足够大才行。2、如果设置了USB休眠模式,那么在休眠的时候,要确保能够进入到休眠的处理中。 修改buffer:E:\WINCE600\PLATFORM\SMDK6410\src\drivers\USB\hcd\s3c6410_ohci.c// Amount of memory to use fo
2012-12-08 14:57:27
3859
原创 Nandflash 驱动移植 (六)
Nandflash驱动移植系列文章导航:Nandflash 驱动移植 (一)Nandflash 驱动移植 (二)Nandflash 驱动移植 (三)Nandflash 驱动移植 (四)Nandflash 驱动移植 (五)Nandflash 驱动移植 (六)一共六篇 近段时间比较忙,接着上一篇,这篇主要介绍到写的部分 1、FMD_LB_Writ
2012-12-08 12:02:20
3383
原创 Nandflash 驱动移植 (五)
Nandflash驱动移植系列文章导航:Nandflash 驱动移植 (一)Nandflash 驱动移植 (二)Nandflash 驱动移植 (三)Nandflash 驱动移植 (四)Nandflash 驱动移植 (五)Nandflash 驱动移植 (六)一共六篇 接着上一篇 1、ECC_CorrectData() 查找ECC错误并矫正
2012-11-22 08:22:18
3705
2
原创 Nandflash 驱动移植 (四)
Nandflash驱动移植系列文章导航:Nandflash 驱动移植 (一)Nandflash 驱动移植 (二)Nandflash 驱动移植 (三)Nandflash 驱动移植 (四)Nandflash 驱动移植 (五)Nandflash 驱动移植 (六)一共六篇 接着上一篇,这一篇介绍cpp部分fmd.cpp,这里将逐个函数进行分析讲解
2012-11-20 10:29:11
3294
原创 Nandflash 驱动移植 (三)
Nandflash驱动移植系列文章导航:Nandflash 驱动移植 (一)Nandflash 驱动移植 (二)Nandflash 驱动移植 (三)Nandflash 驱动移植 (四)Nandflash 驱动移植 (五)Nandflash 驱动移植 (六)一共六篇 在飞凌提供的BSP中,Nandflash采用的是FMD+PDD的结构,PDD主要是应对
2012-11-16 14:44:27
3728
原创 Nandflash 驱动移植 (二)
Nandflash驱动移植系列文章导航:Nandflash 驱动移植 (一)Nandflash 驱动移植 (二)Nandflash 驱动移植 (三)Nandflash 驱动移植 (四)Nandflash 驱动移植 (五)Nandflash 驱动移植 (六)一共六篇 这里将会介绍一下S3C6410CPU中的NFCON,Nandflash控制寄存器
2012-11-15 12:24:00
6789
原创 Nandflash 驱动移植 (一)
Nandflash驱动移植系列文章导航:Nandflash 驱动移植 (一)Nandflash 驱动移植 (二)Nandflash 驱动移植 (三)Nandflash 驱动移植 (四)Nandflash 驱动移植 (五)Nandflash 驱动移植 (六)一共六篇 前段时间,研究了一下4G的Nandflash驱动。手头上只有飞凌6410BSP自带的Nand
2012-11-15 10:28:02
6709
原创 移植UniModem驱动后,引起USB无法与PC同步
前段时间搞GPRS,为了实现同时上网和通话短信,移植了MUX驱动和UniModem驱动。移植完后出现了一个状况,USB无法与PC同步,CE上提示“端口不可用,请关闭其它正在使用的程序”之类的。当时一直没留意这个玩意,今天抽空看了下,发现这个问题既然是由移植后的UniModem驱动引起的。这个无法同步有点奇怪,只要没有接上GPRS模块,MUX初始化失败后就会导致USB无法同步。如果接上GPRS模
2012-11-13 14:55:16
2309
原创 wince中关于source文件中需要注意的问题
在ce的底层中,经常会用到source配置文件,这里面不得不说的是在引用了一些库之后,换行之前记得不要有空格,要不就会编译出错。 SOURCELIBS=$(SOURCELIBS) \ $(_TARGETPLATROOT)\src\Whimory\Lib\$(_CPUINDPATH)\WMRGlobal.lib\ $(_TARGETPLATROOT)\src\Whimory\Lib\
2012-11-06 13:03:42
1032
原创 坑爹的VS2005,遇到工程中的文件夹无法展开,咋办
这两天,遇到了一个比较奇怪的现象。在VS2005中开发WINCE6,突然间发现这个工程中的COMMON的文件夹无法展开了。点击那个+号也没反应,但是其他的又能展开,就这个不行。后来才发现原来是自己在COMMON下面拷贝了一份Nandflash在其下面,拷贝后的文件夹名称中含有中文,导致这个COMMON无法展开了。只要改回E文就没事了。附图一张:在此记录一下
2012-11-06 10:04:48
1269
原创 wince 防止程序创建多个实例,互斥的使用
以前搞过这个防止程序创建多个实例的程序,现在回忆记录一下。什么时候用的互斥?答:当你的程序只允许同时打开一个的时候,就可以通过互斥来实现。当然,还有更多的情况,这里就不多说了。下面说的互斥,主要是针对防止程序创建多个实例这种情况来实现的。流程:1、在程序初始化的时候创建互斥量2、检测互斥量返回的错误代码,看是否已存在这个互斥量3、若已存在相同的互
2012-10-12 09:12:59
2189
原创 6410 wince IROM引导SD升级 回忆
前段时间,需要把IROM这个搞一下。主要是因为要更换Nandflash,而飞凌提供的IROM只支持2G的,不支持4G的。所以需要自己把这个给搞出来IROM是一个nb0二进制文件,主要是固化到SD卡上,然后在开机的时候,由IROM启动方式进入。CPU会跳转到SD卡上的IROM,进行引导升级Stepldr、Eboot和NK。由于我用的飞凌6410开发板并不提供这个源码,所以只能自己搞一
2012-10-10 12:10:44
2137
原创 解决6410 WINCE6 应用层调用SetSystemPowerState api关机无效的问题
6410平台下的wince6系统,在应用层中使用SetSystemPowerState api函数关机发现无效。应用层调用如下:SetSystemPowerState(NULL, POWER_STATE_OFF, POWER_FORCE);注:该调用需要引用pm.h头文件,该头文件在wince600目录下可找到,同时需要使用#pragma comment(lib, "coredll
2012-07-25 11:22:30
4497
1
原创 wince MFC窗口全屏
wince的MFC程序窗口全屏,在InitDialog函数里面加:CRect m_FullScreenRect; //全屏区域 CRect WindowRect; GetWindowRect(&WindowRect); CRect ClientRect; RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &Cli
2012-05-30 15:18:58
2940
原创 6410修改键盘驱动 自定义6*5矩阵键盘
根据需要,需要搞一个6*5的矩阵键盘,6行5列。行接的是GPIOK8~GPIOK13,列接的是GPIOL0~GPIOL4研究了一下6410的键盘驱动后,修改如下:一、 添加按键定义添加“扫描”按键的定义。1、在C:\WINCE600\OSDesigns\S3C6410_DEMO\S3C6410_DEMO\SDKs\SDK1\obj\TE6410Board\Include\A
2012-05-28 09:08:24
4646
原创 android 定时一段时间执行
有些情况需要隔一段时间去执行某个操作一次或者是每隔一段时间久执行某个操作:下面是每隔一段时间就执行某个操作,直到关闭定时操作:final Handler handler = new Handler(); Runnable runnable = new Runnable(){ @Override public void run() {
2012-05-26 22:14:47
18197
1
原创 win32使用OPENFILENAME浏览文件窗口
使用win32 API打开 浏览文件窗口,使用OPENFILENAME结构体来实现这个功能。代码如下:OPENFILENAME ofn; WCHAR* szFile = new WCHAR[512]; WCHAR* szFileTitle = new WCHAR[512]; memset(&ofn, 0, sizeof(ofn)); memset(szFile, 0, size
2012-04-09 09:49:32
3306
原创 win32 设置Edit控件为只读
使用CreateWindow创建了Edit控件后,想把该控件设置成只读,就可以使用:::PostMessageW(hwnd, EM_SETREADONLY, 1, 0);发送这个消息到Edit控件后,就可以设置成只读属性。具体介绍情况下面的MSDN:EM_SETREADONLY MessageThe EM_SETREADONLY message sets or re
2012-03-09 11:03:22
6355
原创 UNICODE十六进制数组转成中英文
UNICODE十六进制的数组转成中英文实现char*转换成中英文,每两个char合成一个wchar_t:// UNICODE十六进制数组转成中英文// hex array to wchar_t*// wchs == NULL, wchsLen as output(the size of wchs will be used)// error: return -1int Y
2012-02-29 22:24:58
9265
3
Oracle数据库直连测试demo
2015-06-02
C++实现中英文与UNICODE十六进制字符串互转
2012-04-20
基于AT89S52的GSM安防系统(全套资料包括代码和原理图)
2010-06-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人