<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[青&天]]></title><description><![CDATA[做一个有记者思想、有哲学思想的IT男]]></description><link>https://blog.youkuaiyun.com/u014106791</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014106791]]></copyright><item><title><![CDATA[5 新的关键字]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/134322654</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/134322654</guid><author>u014106791</author><pubDate>Tue, 14 Nov 2023 00:51:57 +0800</pubDate><description><![CDATA[且在源码中无法快速定位所有使用强制类型转换的语句，出现问题时难以定位。C语言中所有的全局标识符共享同一个作用域，那么项目很大时，标识符之间就有可能发生冲突。上面程序中运用到了第二节的知识点：const 常量只有定义的别名拥有只读属性，不会影响到正名。回想C语言中，动态内存是怎么分配的？在程序设计理论中，强制类型转换也是不被推荐的，与goto语句一样，尽量避免。C++通过new关键字进行动态内存申请，动态内存申请是基于类型进行的。默认情况下，可以直接使用默认命名空间中所有的标识符。C方式的强制类型转换。]]></description><category></category></item><item><title><![CDATA[4 函数的升级-下]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/134228532</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/134228532</guid><author>u014106791</author><pubDate>Sun, 05 Nov 2023 18:38:53 +0800</pubDate><description><![CDATA[编译器通过不同的参数来区分不同的功能。]]></description><category></category></item><item><title><![CDATA[3 函数的升级-上]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/133515935</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/133515935</guid><author>u014106791</author><pubDate>Sun, 05 Nov 2023 00:42:55 +0800</pubDate><description><![CDATA[c++中可以通过inline关键字声明内联函数inline关键字只是一种请求，编译器不一定运行这种请求内联函数省去了普通函数调用时压栈、跳转、返回的操作c++中在声明函数的时候指定参数的默认值c++可以声明占位符参数，占位符参数一般用于程序扩展和兼容c语言函数调用的不规范写法。]]></description><category></category></item><item><title><![CDATA[2 C++中的引用]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/132776903</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/132776903</guid><author>u014106791</author><pubDate>Sun, 24 Sep 2023 22:09:21 +0800</pubDate><description><![CDATA[上节说到，变量名实际上是一段连续存储空间的别名。很显然我们可以将其命名为其它名字，就像我们有乳名、小名一样。C++引入了引用的概念。上面程序中，int& new_name = original;用original别名叫new_name，当new_name赋值后，对于的存储空间的值也会变化，故original 的值和new_name值一样。]]></description><category></category></item><item><title><![CDATA[C到C++的升级]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/132642320</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/132642320</guid><author>u014106791</author><pubDate>Sun, 03 Sep 2023 20:34:30 +0800</pubDate><description><![CDATA[C++中更强调语言的实用性，所有的变量都可以在需要使用时定义。我们都知道C语言都必须要在作用域之前的位置定义，否则会报错。引申概念，什么是作用域？通常我们在写代码的时候，所用到的名字并不是有效/可用的，限定变量或者函数的名字的可用性的代码范围就叫作用域。全局变量作用域就是整个文件，加了extern声明之后作用域就可以为整个工程空间使用。局部变量的作用域就是本函数内，用完即丢弃。int c = 0;i < 10;i++) //在C语言中，变量定义需要在函数开始，不能在使用的地方定义。]]></description><category></category></item><item><title><![CDATA[为什么要学习C++]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/132637051</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/132637051</guid><author>u014106791</author><pubDate>Sat, 02 Sep 2023 19:53:08 +0800</pubDate><description><![CDATA[以安卓系统为例，C语言开发只是占其中的一部分，HAL可以用C/C++编写，为了方便移植和开发，大部分HAL采用C++编写。当面向过程的方法论暴露的缺陷越来越多的时候，业界开始考虑在工程项目中引入面向对象的设计方法，而第一个需要解决的问题：高效的面向对象语言，并且能够兼容已有的C代码。对于一个架构师而言，掌握各种语言的优势并合理运用到系统中，由此简化系统的开发，是架构生涯的第一步。操作系统的修改和驱动程序开发在现代软件产品中占据的比重越来越小。将现实世界中的事物直接映射到程序中，可直接满足用户需求。]]></description><category></category></item><item><title><![CDATA[uboot-C语言环境初始化]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/77074634</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/77074634</guid><author>u014106791</author><pubDate>Thu, 10 Aug 2017 23:04:34 +0800</pubDate><description><![CDATA[1-栈初始化
栈是一种具有后进先出性质的数据组织方式，也就是说，后存放的先取出，先存放的后取出。
根据sp指针指向的位置，栈可以分为满栈和空栈。
满栈：当堆栈指针sp总是指向最后压入堆栈的数据。
空栈：当堆栈指针sp总是指向下一个将要放入数据的空位置。
ARM采用满栈！
 
根据SP指针移动方向，栈可以分为升栈和降栈。
升栈：随着数据的入栈，SP指针从低地址->高地址移动。
降栈]]></description><category></category></item><item><title><![CDATA[IMX6q ft5x0x_ts触摸芯片分析]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/54947862</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/54947862</guid><author>u014106791</author><pubDate>Thu, 09 Feb 2017 15:38:00 +0800</pubDate><description><![CDATA[Imx6使用的触摸屏控制芯片是ft5x06系列的，对应的文件为：ft5x06_ts.c。
Ft5x06_ts驱动涉及的内容如下：
1.  I2C驱动框架。
2.  中断子系统，中断分层思想。
3.  Workqueue机制。
4.  Input输入子系统。


如上图所示，是触摸板与cpu的连接图，触摸板没有使用cpu的AD转换装置，ft5x06内部自带AD转换，将x y坐标通过I]]></description><category></category></item><item><title><![CDATA[Rt5370 USB无线网卡移植记录]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/52597218</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/52597218</guid><author>u014106791</author><pubDate>Tue, 20 Sep 2016 16:21:17 +0800</pubDate><description><![CDATA[一 驱动移植 
驱动软件包：WI-PI.tar.bz2 
在linux解压之后，得到WI-PI文件夹，进入WI-PI文件夹，找到makefile。打开makefile，找到：ifeq ($(PLATFORM),PC)
# Linux 2.6
#LINUX_SRC = /lib/modules/$(shell uname -r)/build
# Linux 2.4 Change to your loc]]></description><category></category></item><item><title><![CDATA[linux 在用户空间如何实现usb热插拔]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/52596640</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/52596640</guid><author>u014106791</author><pubDate>Tue, 20 Sep 2016 15:44:18 +0800</pubDate><description><![CDATA[udev介绍：
udev是Linux 2.6内核的设备管理器，它在/dev目录下动态地创建/移除设备节点。它是devfs和hotplug的继承者，运行在用户空间，并且用户可以用udev规则来改变设备的命名。udev依赖2.6内核引入的sysfs文件系统。每当一个设备被加入或移除，就会产生内核事件通知用户空间的udev。
 
mdev介绍:
  mdev是busybox自带的一个简化版的ud]]></description><category></category></item><item><title><![CDATA[Linux SPI总线设备驱动模型详解]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/52301671</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/52301671</guid><author>u014106791</author><pubDate>Wed, 24 Aug 2016 16:42:10 +0800</pubDate><description><![CDATA[随着技术不断进步，系统的拓扑结构越来越复杂，对热插拔、跨平台移植性的要求越来越高，早期的内核难以满足这些要求，从linux2.6内核开始，引入了总线设备驱动模型。其实在linux2.4总线的概念就已经提出来了，直到2.6版本的内核才运用。
Linux系统中有很多条总线，如I2C、USB、platform、PCI等。
以spi为例，假如有M种不同类型CPU，N中不同SPI外设，在写裸机驱动的时候]]></description><category></category></item><item><title><![CDATA[温湿度传感器si7020-a20 linux驱动编写]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/52231565</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/52231565</guid><author>u014106791</author><pubDate>Thu, 18 Aug 2016 11:44:54 +0800</pubDate><description><![CDATA[温湿度传感器在工业当中运用的比较广泛，通常用于检测设备所处环境的温度和湿度，温度过高，设备就有可能自动关机来保证设备不被烧坏。    我所采用的温湿度传感器是si7020-a20的芯片，I2C接口，地址如图描述：
    也就是说，作为从机，si7020地址是0x40。另外，cpu采用atml 9x35，内核2.6.39。知道0x40这个地址之后，就要在板级文件board-sam9x5ek中添加]]></description><category></category></item><item><title><![CDATA[SC16IS752驱动编写与调试记录]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/52208249</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/52208249</guid><author>u014106791</author><pubDate>Mon, 15 Aug 2016 09:31:05 +0800</pubDate><description><![CDATA[折腾了几天，终于把spi扩展串口给搞定了，这个芯片有两个通道、可配置波特率、支持IIC和spi通信，支持中断等诸多优良特性。
主cpu是采用AT91SAM9X35平台，linux内核采用的是2.6.39，文件系统是用buildroot生成的。
由于之前用通用驱动来操作752芯片，所以，我们需要先关闭内核通用驱动的配置（不关闭也是可以的，modalias一改，通用驱动就匹配不上了）。好了，先上原]]></description><category></category></item><item><title><![CDATA[pm_stay_awake运用在sequans项目中。]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/50378283</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/50378283</guid><author>u014106791</author><pubDate>Tue, 22 Dec 2015 10:38:07 +0800</pubDate><description><![CDATA[本文参照窝窝团队的低功耗管理而写，在其基础上增加了自己的想法。连接如下：
http://www.wowotech.net/pm_subsystem/driver_pm.html

    在我们移动手持设备中，低功耗是不得不采用的，没有低功耗，那我们的移动设备待机时间是可想而知的。
    在我做sequans项目中，遇到一个奇葩的问题：当申请gpio引脚为中断唤醒源时，只能保持100ms]]></description><category></category></item><item><title><![CDATA[sequans项目增加开启和关闭LTE]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/50378246</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/50378246</guid><author>u014106791</author><pubDate>Tue, 22 Dec 2015 10:33:24 +0800</pubDate><description><![CDATA[SetUeStarted   参数0关闭。1开启


在设备启动脚本sequansd.xml中，（cp -f ${WORKDIR}/mifidata/${MIFIDATA_VERSION}/src/4G/openwrt/feeds/sequans/sequa
nsd/files/sequansd.xml   ${SEQ_DIR}/src/4G/openwrt/feeds/sequans/s]]></description><category></category></item><item><title><![CDATA[dbus pc机上开发环境的建立]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/49491945</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/49491945</guid><author>u014106791</author><pubDate>Thu, 29 Oct 2015 15:13:00 +0800</pubDate><description><![CDATA[这几天开始弄dbus通信协议，理论知识不多说，网上一大堆，基于dbus开发，首先得搭建dbus开发环境，本人用红帽和centos搭建的。
首先下载源码：http://dbus.freedesktop.org/releases/dbus/ 
里面有各种各样的历史版本，我下载的是最新版本的。（dbus-1.10.2.tar.gz）
tar解压之后，运行./configure出现错误：]]></description><category></category></item><item><title><![CDATA[windos批处理从dos界面传入参数到批处理文件的方法]]></title><link>https://blog.youkuaiyun.com/u014106791/article/details/49449459</link><guid>https://blog.youkuaiyun.com/u014106791/article/details/49449459</guid><author>u014106791</author><pubDate>Tue, 27 Oct 2015 15:51:11 +0800</pubDate><description><![CDATA[windows批处理从dos界面传入参数到批处理文件的方法：


echo 请输入“pcdac+控制数字”的那个控制数字，按回车键结束
set/p var=
adb shell pcdac+%var%


若在dos中输入1，则adb shell pcdac+%var%就相当于：adb shell pcdac+1


如果.bat文件这样写
adb shell
killa]]></description><category></category></item></channel></rss>