
手机及嵌入式
caz28
C是俺吃饭的家伙,C++也偶尔用用,Python是我最喜欢用的脚本。
本人一直从事嵌入式开发,喜欢尝试新鲜技术,希望与热爱编程的朋友共同交流进步。
展开
-
支持WIN7的VSCode版本
支持WIN7的VSCode版本原创 2022-12-11 00:31:51 · 25355 阅读 · 2 评论 -
如何用 SSH 登录 Kindle 系统
ssh登录kindle原创 2022-12-04 01:01:26 · 2104 阅读 · 0 评论 -
WSL安装devkitPro
WSL安装devkitPro原创 2022-11-29 20:11:05 · 812 阅读 · 0 评论 -
展讯功能机平台抓log
好久没抓log,结果出了很多问题,原创 2014-06-07 18:50:35 · 4159 阅读 · 0 评论 -
用RVCT编译STM32点亮LED
用RVCT编译STM32项目原创 2014-02-26 17:39:37 · 2855 阅读 · 0 评论 -
过放电锂电池的抢救
过放电池抢救。原创 2013-10-26 20:07:30 · 5318 阅读 · 0 评论 -
各种SIM卡尺寸
最初的SIM卡跟IC电话卡一样,也就是跟我们银行卡一样大,85.6 mm x 54 mm.后来的SIM卡就是现在所谓大卡,应该叫小卡,前面那个才叫大卡,其实应该叫Mini-SIM, 25 mm x 15 mm.小卡,Micro-SIM, 15 mm x 12 mm.更小的, Nano-SIM,12.3 mm x 8.8 mm.原创 2013-10-14 20:27:48 · 12769 阅读 · 0 评论 -
串口相关
一、串口引脚1 DCD 载波检测2 RXD Receive Data 接收数据3 TXD Transmit Data 发送数据4 DTR Data Terminal Ready 数据终端准备5 GND System Ground 接地6 DSR Data Set Ready 数据准备完成7 RTS Request to Send 请求发送8 CT转载 2013-09-24 12:08:18 · 734 阅读 · 0 评论 -
ATE0Q0V1
Android的ril代码中initializeCallback函数发送的第一个AT指令是“ATE0Q0V1”,很是迷惑了一阵,后来才明白这是三个指令的合并:”ATE0+ATQ0+ATV1“。ATE0:不回显字符。ATE1:回显字符。ATQ0: 返回结果码。ATQ1:不返回结果吗。ATV0:返回数字码。ATV1: 返回文字码。原创 2013-09-24 12:07:25 · 5392 阅读 · 0 评论 -
Android remake
Android代码make一遍要很久,所以有很多时候我们希望只remake一部分,下面是这些编译命令:1.system.imgmake systemimage2.userdata.imgmake userdataimage3.ramdisk.imgmake ramdisk4.boot.imgmake bootimage5.system打包make snod原创 2013-01-18 22:08:39 · 3687 阅读 · 0 评论 -
EIC
EIC(External Interrupt Controller)模块包括四个子模块:EIC_DBNC, EIC_LATCH, EIC_ASYNC andEIC_SYNC.EIC_DBNC子模块提供8个源信号输入连接。有一个去抖动机制用来捕捉输入信号的稳定状态,这个子模块还引入了一个单触发机制,用来提升输入事件的检测稳定性。另外,这个子模块的时钟可以自动关闭,以降低功耗。去抖动的范围是1翻译 2014-08-08 20:37:42 · 2938 阅读 · 2 评论 -
GSM语音编码
编解码器位速率(Kbps)压缩比率语音编码算法FR(全速率)138RPELPEFR(增强型全速率)12.28.5ACELPHFR(半速率)5.618.4VSELPAMR(自适应多速率)4.75~12.221.9~8.5ACELP原创 2014-12-27 16:33:00 · 1595 阅读 · 0 评论 -
延时程序
展讯平台操作系统是ThreadX,他们做了一些包装。下面是驱动中常用的延时函数:PUBLIC void XXX_Delayms (uint32 ms){ if (SCI_InThreadContext()) //线程上下文 { SCI_Sleep (ms); } else //中断上下文 { OS_TickDe原创 2015-03-19 18:35:30 · 1027 阅读 · 0 评论 -
51单片机自定义多个软件定时器
51单片机只有两个硬件定时/计数器,有时候我们要用多个定时器,可以自己写软件定时器,就可以有多个定时器用了,下面代码实现了四个定时器,实现四个LED以不同频率闪烁,为了验证定时效果,四个LED闪烁频率依次2倍关系,实际可以任意定义。/*---------------------------------------------------- 名称:用定时器控制led亮灭 单片机:stc1原创 2015-07-30 17:20:54 · 7128 阅读 · 2 评论 -
STC单片机跑马灯
我用的板子是一个电机驱动版,上面有四个LED,接在P1.0,P1.1,P1.2,P1.3脚上,用定时器1ms触发一次,1000次就是1秒,每个灯亮一秒,形成跑马灯。/*---------------------------------------------------- 名称:用定时器控制led亮灭 单片机:stc12c2052 晶振:12M 说明:四个led,一个亮一秒,跑原创 2015-07-30 15:23:26 · 3389 阅读 · 0 评论 -
MTK功能机平台抓log
好久没用这个了,记录备忘。主make文件修改:KAL_TRACE_OUTPUT = FULLKAL_DEBUG_LEVEL = SLIM_DEBUG_KAL ## RICH_DEBUG_KAL > NORMAL_DEBUG_KAL > SLIM_DEBUG_KAL > RELEASE_KAL.如果想不进工程模式设置就可以抓log,需要修改NV:NVRAM_EF_PORT_S原创 2015-08-05 11:47:10 · 4505 阅读 · 1 评论 -
MTK平台模拟器不能运行,power on 等菜单是灰的问题
MTK平台模拟器编译过了,出现logo后,就停在那里,不能动了,菜单里“power on”是灰色的,不能点击。以前模拟器开机问题一般都是NV引起的,但这次删除NV并不能解决。跟代码,发现进入MMI_task,跑了几圈就飞了。继续看NV问题:typedef enum { GPIO_DEV_LED_MAINLCD = 0 , /* Main LCD backlight原创 2015-09-07 11:38:32 · 1159 阅读 · 0 评论 -
NMEA-0183 协议 ——GPS芯片输出标准格式
NMEA 协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会( NMEA-The National MarineElectronics Associa-tion)制定的一套通讯协议。GPS 接收机根据NMEA-0183 协议的标准规范,将位置、速度等信息通过串口传送到PC机、PDA 等设备。NMEA-0183 协议是GPS转载 2015-10-23 19:27:26 · 6508 阅读 · 1 评论 -
CuteCom 无法打开USB串口问题
在Ubuntu下装了CuteCom,但打开 /dev/ttyUSB0 时,总提示错误,打开失败。用 Minicom 可以正常读取 ttyUSB0。 sudo chmod 666 /dev/ttyUSB0这样修改后, CuteCom 就可以正常打开 USB 串口了。原创 2015-12-08 19:26:19 · 8649 阅读 · 2 评论 -
adb shell 调试 Android 串口
Android手机上很多外设是串口连接到AP的,如modem,gps。为了调试这些串口,通常需要将它们飞线接出来,用pc的串口连接调试。这样比较麻烦。在adb shell里是可以直接调试串口的,就不用飞线了,还可以验证Android串口配置是否正确。用usb连接Android设备调试后,在pc端输入 adb shell,连接成功后,先停止一些可能占用端口的服务,如:stop ril-原创 2013-01-22 13:02:15 · 29611 阅读 · 6 评论 -
MTK 52D开机logo压缩
MTK的52D芯片有32Mb RAM和 16Mb ROM,ROM非常紧张,所以采用了压缩方式。但开机logo是放在不压缩部分的,而且原始方案里只能用bmp图片做logo,图片不管怎么处理最后都要处理成16位点阵数据,所以对图片压缩没有意义。由于rom限制,log大小不能太大,为了放更大的log,我决定不用资源生成的数组,而是用自己压缩的数组,解开后显示到屏幕上。彩色图片压缩不容易,算法也复杂,原创 2011-12-14 15:12:36 · 2162 阅读 · 0 评论 -
SSC String
Mobile Phone: SSC StringGSM 規範里有所謂的 SSC (Supplementary Service Control) 附加服務控制字串如可以用來顯示手機本身 IMEI(International Mobile Equipment Identity)國際行動識別碼的 "*#06#" 转自:http://kunyichen.wordpress.com/转载 2011-09-14 18:07:31 · 965 阅读 · 0 评论 -
Bluetooth 无线技术配置文件(Porfile)
为了使用 Bluetooth 无线技术,设备必须能够翻译特定 Bluetooth 配置文件。配置文件定义了可能的应用。Bluetooth 配置文件表达了一般行为,Bluetooth 设备可以通过这些行为与其它设备进行通信。Bluetooth 技术定义了广泛的配置文件,描述了许多不同类型的使用案例。按照 Bluetooth 规格中提供的指导,开发商可以创建应用程序以与其它符合 Bluetooth 规转载 2010-11-17 14:25:00 · 2486 阅读 · 0 评论 -
BDF字体规范
好久没写东西了,发点以前翻译的东西,关于BDF字体的。原文到网上搜吧,俺的英语水平有限,欢迎指正。 字形位图发行格式(BDF)规范1 介绍本文描述Adobe的字形位图发行格式(BDF),BDF是为了容易被人和计算机理解而制作的。本文描述的内容如有改变恕不提前通知。原创 2011-09-21 21:29:08 · 2465 阅读 · 0 评论 -
展讯手机模拟器打包
假设目标目录名为Demo:1.copy "build\PXXX_builddir\win\bin\*.*"->"Demo".2.copy "build\PXXX_builddir\img\mmi_res_240x320_win.bin"->"Demo".3.copy原创 2011-07-15 21:39:14 · 1382 阅读 · 0 评论 -
MTK手机模拟器打包
有时候我们要把模拟器单独拎出来,给UI或客户使用。1.先建一个文件夹,存放要打包的内容,命名为10A_MODIS.2.copy整个MoDIS_VC9\WIN32FS文件夹到10A_MODIS。3.10A_MODIS内建立MoDIS,copy整个MoDIS_VC9\Mo原创 2011-08-03 12:04:09 · 1442 阅读 · 0 评论 -
方向传感器
方向传感器是加速度传感器(GSensor)的廉价替代品,能完成GSensor的一些功能。下面根据网上资料介绍其原理。 ROHM四方向传感器RPI-1031简介 工作原理:1.通过光学原理实现:内部有发光二极管一个,光敏接收三极管两个;另外有一颗圆柱型的遮光物;如图所示:对应的电路图如下:2.通过圆柱型遮光物实现遮挡发光二极管和光敏接收管来检测RPI-1031当前所处的状态;3.当RPI-1031处原创 2009-12-19 17:27:00 · 2505 阅读 · 1 评论 -
MTK一套代码多项目实现
考虑生产效率,一般设计公司总是尽量在一套代码上开发,便于利用以前代码,减少工作量。这就要考虑怎样组织代码,使多个项目共存在一套代码里。我们以前的方法是把不能共存的代码放一个分支上,使用时,先拉主干,再拉分支。但这样有个问题,主干改了,如果分支跟这个修改有关系,就要更新,光拉出这些原创 2011-07-23 13:19:16 · 2414 阅读 · 0 评论 -
LSB最低有效位
<br />最低有效位<br /> (LSB: Least Significant Bit) <br /> 最低有效位(LSB)是给这些单元值的一个二进制整数位位置,就是,决定是否这个数字是偶数或奇数。LSB有时候是指最右边的位,因为写较不重要的数字到右边位置符号的协定。它类似于一个十进制整数的最不重要的数字,它是在一个(最右边)位置的数字。 <br /> LSB(Least Significant Bit),意思为最低有效位;MSB(Most Significant Bit),即最高有效位,若MSB转载 2010-11-03 09:59:00 · 8972 阅读 · 0 评论 -
串口流控集锦
一、串口引脚1 DCD 载波检测2 RXD Receive Data 接收数据3 TXD Transmit Data 发送数据4 DTR Data Terminal Ready 数据终端准备5 GND System Ground 接地6 DSR Data Set Ready 数据准备完成7 RTS Request to Send 请求发送8 CT转载 2012-06-12 17:33:05 · 3458 阅读 · 0 评论 -
应用程序Google Play商店(com.android.vending)意外停止的解决方法
我的手机是ST17i,国行的,没有Google Play商店,自己安装后,总是意外停止。根据网上介绍,先root机器,再用root explorer 把data/app目录下的“com.android.vending-1.apk”文件复制到 system/app目录下,改名为“com.android.vending.apk”。重启机器,就ok了。不需要修改什么权限。原创 2012-07-04 19:07:52 · 32192 阅读 · 0 评论 -
MTP Device 不停弹出问题
最近买了一个Sony的android手机,用数据线连上电脑,任务栏显示找到新硬件,显示“MTP Device”,用鼠标点掉,又出来。设备管理器里也显示正常,驱动正常,但用PC Companion连接不上。在网上找了很久,也没找到合适的解决方法。有次不经意解决这个问题了。解决方法如下:设置->索尼爱立信->连接->安装PC Companion,这个选中。然后连接电脑,手机就会弹出原创 2012-04-19 12:38:17 · 3426 阅读 · 0 评论 -
VirtualBox上设置共享文件夹
Windows上virtualBox设置共享文件夹,guest操作系统是ubuntu。下面是ubuntu在虚拟机上运行登录后的操作。1.virtualBox->设备->安装增强功能。virtualBox4.1已经会自动安装了。2.在ubuntu的命令行输入mkdir my_share.建立一个目录my_share,用于装载共享目录。3.在设置或虚拟机界面下边选共原创 2012-09-11 21:25:26 · 929 阅读 · 0 评论 -
Ubuntu安装低版本gcc
现在做android,装完Ubuntu,自带的gcc是4.6的,我们的需要4.5.2.根据网上资料,自己试验,总算把4.5的安装上了。sudo apt-get install gcc-4.5sudo apt-get install g++-4.5这两条命令就够了,安装完了。现在系统里有两个gcc了,一个4.6,一个4.5。先把目录切换到/usr/bin下。sudo mv原创 2012-09-11 21:16:50 · 2110 阅读 · 0 评论 -
展讯平台实现维吾尔语的几种方法
展讯的功能机版本要实现维吾尔语,有以下几种方法:1.用S9输入法,展讯提供相应的补丁。这种方法不能同时打开阿拉伯语和维吾尔语,两者用的字库不同,有冲突。而且S9不支持中文,无法同中文一起用。2.用DE输入法,自己修改。这个我尝试了一下,显示有问题,因为用的阿拉伯字体,有些显示“口”,问题比较复杂。3.用CSTAR_ML输入法。这个可以显示中文跟维吾尔文,其他还没研究。原创 2012-08-21 20:46:33 · 1630 阅读 · 0 评论 -
用python处理世界时钟坐标
世界时钟,World clock,是很多非智能手机中常见的应用。一般在一张或几张世界地图显示各大城市的位置、时区、时间等。我们客户为了降低成本,经常换屏,但我们代码里小屏幕分辨率没有这个应用,需要修改。图片缩放一下,代码里坐标也要跟着缩放。我们代码是C语言的,坐标是这样的:{{13,61},{13 ,65},{17 ,62},{17 ,50},{0,0},{原创 2012-07-27 20:58:05 · 1756 阅读 · 0 评论 -
Android对Linux内核的改动你知道多少?
我们知道Android是一个开源系统,但是并不彻底,而且Android从多个方面对Linux内核进行了改动与增强,尽管一度和Linux基金会在内核方面闹得不愉快,但是最终也达成了和解。下面将对此进行详细介绍和分析。 1 、Goldfish Android模拟器通过运行一个Goldfish的虚拟CPU.Goldfish来运行arm926t指令集(arm926t属于armv转载 2012-07-27 20:18:18 · 819 阅读 · 0 评论 -
脚本语言用于加快开发
我平时工作主要用C,但C在处理字符串和文件方面,没有脚本语言方便。这里举个例子说明脚本语言用于加速开发。有一个从flash里dump出的bin文件要转化为可读的hex文件格式,并每4096字节插入一个地址标记。先用python做一个原型,不用加太多判断,只要can do即可,用于验证流程:01 import struct02 infn = 'user_data.bin'原创 2012-04-02 14:38:21 · 1373 阅读 · 1 评论 -
各种拨号缩写
ADN Abbreviated dialing number 缩位拨号(按2#,则拨打SIM卡上第二个号码)FDN Fixed dialer number 固定拨号(需要sim卡支持。)BDN Barred dialing numbers 禁止拨号 (需要sim卡支持。)LND Last number dialed 最后拨出号码原创 2012-04-11 18:59:00 · 1883 阅读 · 0 评论 -
多维数组、嵌套结构的初始化
C语言很灵活,虽然条条大路通罗马,但代码并不是只写给计算机看的。int a[2][3]={1,2,3,4,5,6};int a[2][3]={{1,2,3},{4,5,6}};对于多维数组上面两种方式初始化效果是一样的,但显然第二种更易读。typedef struct{ int a; int b;}S1;typedef struct{ int c; S1 d; int e;}S2;原创 2009-12-25 09:54:00 · 1726 阅读 · 0 评论