
c嵌入式编程
Tony_guo56
这个作者很懒,什么都没留下…
展开
-
C代码优化方案
C代码优化方案目录C代码优化方案__ 4 1、选择合适的算法和数据结构__ 4 2、使用尽量小的数据类型__ 5 3、减少运算的强度__ 5 (1)、查表(游戏程序员必修课)_ 5 (2)、求余运算__ 6 (3)、平方运算__ 6 (4)、用移位实现乘除法运算__ 6 (5)、避免不必要的整数除法__ 8 (6)、使用增量和减量操作符__ 8转载 2014-07-17 17:32:56 · 609 阅读 · 0 评论 -
MTK 平台LCD 驱动的整个过程的讲解
MTK_LCD_Driver代码的路是在/mediatek/source/kernel/driver/vedio/mtkfb.cmodule_init(mtkfb_init);模块初始化函数int__init mtkfb_init(void){int r = 0;MSG_FUNC_ENTER();/* Register转载 2014-09-17 11:28:18 · 869 阅读 · 0 评论 -
MT6573_android_LCD_backlight_Driver
一、 与 LCD 驱动相关的主要文件路径 \mediatek\platform\mt6573\uboot\mt6573_disp_drv.c \mediatek\platform\mt6573\uboot\mt6573_disp_drv_dpi.c \mediatek\platform\mt6573\uboot \mt6573_disp_drv_dbi.c \mediatek\platform\m转载 2014-09-10 15:28:15 · 1011 阅读 · 0 评论 -
Ubuntu下adb 显示insufficient permissions for device
一、工具介绍android-sdk-linux_x86/tools下有一堆工具,今天要用的是:Android Debug Bridge,在android开发过程中,这个工具是使用得最多的。(缩写adb,有点像gcc的gdb似的) adb start-server – 实际上它会启动一个 adb fork-server server adb kill-server – kill掉转载 2014-08-14 13:45:56 · 514 阅读 · 0 评论 -
快来DIY自己的固件吧——N系列固件DIY详细教程(7.27更新RK2918)
我们为什么要DIY固件?DIY固件的好处是什么?通过DIY固件,我们可以打造自己专属的安卓界面,可以使你的智能机安装更多的程序,支持更多的应用,充分发挥你手中机器的智能所在!还等什么,快随探花来玩转固件,享受DIY的乐趣吧!注:本文以RK28(N3 N5系列)为主进行讲解,RK2918系列(N10、N50等)大体相同,可参考!本篇需要用到的工具:1,DIY固转载 2014-08-14 14:19:16 · 5556 阅读 · 2 评论 -
Linux加载DTS设备节点的过程(以高通8974平台为例)
DTS是Device Tree Source的缩写,用来描述设备的硬件细节。在过去的ARM Linux中,arch/arm/plat-xxx和arch/arm/mach-xxx中充斥着大量的垃圾代码,相当多数的代码只是在描述板级细节,而这些板级细节对于内核来讲,不过是垃圾,如板上的platform设备、resource、i2c_board_info、spi_board_info以及各种硬件的pla转载 2014-08-25 11:15:24 · 754 阅读 · 0 评论 -
LCD驱动及Framebuffer相关
内容提要:1. android display相关的名词2. 调试LCD驱动需要注意的步骤3. 关于帧缓冲区及I/O内存------------------------------------------------------------------------------------------1.名词解释GPU:Graphic Processing Unit (图转载 2014-08-22 16:58:50 · 925 阅读 · 0 评论 -
Makefile 中:= ?= += =的区别
makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。Makefile基本教程,参考文档:http转载 2014-08-20 10:25:31 · 551 阅读 · 0 评论 -
Makefile详解(四)-使用条件判断及函数
使用条件判断使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式 可以是比较变量的值,或是比较变量和常量的值。 一、示例 下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。 libs_for_gcc = -lgnu normal_libs = foo: $(objects) ifeq ($(CC),gcc)转载 2014-08-20 10:14:00 · 635 阅读 · 0 评论 -
Android.mk简介
Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译。因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的。因此,您应尽量少声明变量,不要认为某些变量在解析过程中不会被定义。一个Android.mk文件可以编译多个模块,每个模块属下列类型之一:1)APK程序一般的Android程转载 2014-08-19 16:54:54 · 401 阅读 · 0 评论 -
linux驱动的入口函数module_init的加载和释放
像你写C程序需要包含C库的头文件那样,Linux内核编程也需要包含Kernel头文件,大多的Linux驱动程序需要包含下面三个头文件:#include #include #include 其中,init.h 定义了驱动的初始化和退出相关的函数,kernel.h 定义了经常用到的函数原型及宏定义,module.h 定义了内核模块相关的函数、变量及宏。几乎每个linux驱动都有个m转载 2014-08-19 12:23:04 · 517 阅读 · 0 评论 -
关键字static的作用 (转)
这个简单的问题很少有人能回答完全。在C语言中,关键字static有三个明显的作用:1)在函数体内,一个被声明为静态的变量在这一函数被调用过程中维持其值不变(该变量存放在静态变量区)。2) 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。3) 在模块内,一个被声明为静态的函数只可被这一模块内的其它函转载 2014-07-08 11:58:26 · 324 阅读 · 0 评论 -
Android display架构分析
高通7系列硬件架构分析如上图,高通7系列 Display的硬件部分主要由下面几个部分组成: A、MDP高通MSM7200A内部模块,主要负责显示数据的转换和部分图像处理功能理,如YUV转RGB,放大缩小、旋转等。MDP内部的MDP DMA负责数据从DDR到MDDI Host的传输(可以完成RGB之间的转换,如RGB565转成RGB666,这个转换工能载目前的code 中没有使用转载 2014-07-22 15:26:07 · 721 阅读 · 0 评论 -
Linux中数据类型
当Linux内核在体系结构差异较大的平台之间移植时,会产生与数据类型相关的问题。.在编译内核时使用 -Wall -W strict-prototypes 选项, 可以避免很多错误的发生.内核使用的基本数据类型主要有: int 标准C语言整数类型 u32 32位整数类型 pid_t 特定内核对象pi转载 2014-07-18 11:06:06 · 852 阅读 · 0 评论 -
gcc中函数或者变量的weak属性
gcc reference里提到:A function with this attribute has its name emitted as a weaksymbol instead of a global name. This is primarily for the namingof library routines that can be overridden by use转载 2015-08-14 16:03:09 · 1339 阅读 · 0 评论