linux
文章平均质量分 89
布道师Peter
一直从业于半导体行业,曾为Linux内核开源文档社区提交过若干文档。 主要从事Linux、Android相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。
展开
-
基于多核处理器的RTOS多核扩展分析与研究 二
第3章 uC/OS-II内核分析 uC/OS-II是由美国Micrium公司出品的一个源码开放、可移植、可固化、可裁减、可抢占的RTOS[22],并且通过了美国航空管理局FAA(Federal Aviation Administration)认证。uC/OS-II仅是一个实现多任务切换的内核,并没有提供I/O管理、文件系统、网络设备等额外服务。正因为其简洁高效,所以本文选择对其进行SM转载 2015-05-28 17:20:24 · 810 阅读 · 0 评论 -
基于多核处理器的RTOS多核扩展分析与研究 五
4.4 支持SMP的中断模块设计 在SMP环境下如果全部外部中断均由一个CPU来处理,那么SMP系统的中断响应时间仍是单核处理器的水平。因此SMP硬件平台采取的是或者将中断绑定到指定的CPU上、或者不绑定到指定的CPU上。如果中断不绑定到指定的CPU上,则需要在没有屏蔽该中断的CPU中选取一个来处理该中断请求,面临如何仲裁的问题,X86平台的IO APIC就具有这种功能;但对于不具转载 2015-05-28 17:26:14 · 1029 阅读 · 1 评论 -
基于多核处理器的RTOS多核扩展分析与研究 一
本文是我写得一篇关于RTOS SMP扩展的硕士论文,希望对有志于了解RTOS-SMP工作机制的兄弟们提供些许帮助,O(∩_∩)O~。 一直以来人们通过提高主频来提升微处理器的性能,但是高功耗制约着主频的进一步提升,这种矛盾在仅依靠电池供电的嵌入式设备上表现的尤为突出。多核处理器将多个较低主频的处理核心集成到一个芯片内部,通过提高IPC(Instruction Per Clock)来提升处转载 2015-05-28 17:19:17 · 1279 阅读 · 0 评论 -
Boot The Cortex-A9 MPCORE With Linux+uC/OS-II AMP
Author:Fourier Email:samssmarm@gmail.com AMP:(AsymmetricMultiple Processing) Scenario:cpu core 0 run Linux, cpu core 1 run uC/OS-II RTOS. HDMI display panellink to Linux, LCD display panel link转载 2015-05-28 18:43:40 · 527 阅读 · 0 评论 -
*双核双系统的步骤
http://rocketboards.org/foswiki/Documentation/DeviceWideAMP原创 2015-05-28 18:50:18 · 1040 阅读 · 0 评论 -
基于多核处理器的RTOS多核扩展分析与研究 三
第4章 RTOS的SMP扩展设计与实现 单核RTOS的SMP扩展,需要解决系统初始化、任务调度、CPU间的同步与互斥、以及中断处理等方面问题,本文将针对这些问题提出相应的解决方案,并在uC/OS-II上进行SMP扩展实现。4.1 系统初始化 虽然SMP系统中CPU间的地位是平等的,没有主次之分,但是由于在系统初始化期间只有一个“执行上下文”,因此只能有一个CPU转载 2015-05-28 17:22:34 · 2226 阅读 · 0 评论 -
基于多核处理器的RTOS多核扩展分析与研究 四
4.3 支持SMP的调度模块设计4.3.1 调度模块的功能 在SMP系统中CPU没有主从之分,操作系统的调度模块对CPU的管理不是通过一个专门的CPU进行集中管理,而是由系统中所有CPU共同分工协商完成。调度器的工作也被分散到各个CPU中,每个CPU负责本CPU上的调度工作。重新调度可能由于任务激活、任务结束、等待信号、获得信号、退出临界区、等待事件、获得事件、任务睡眠、任务唤醒转载 2015-05-28 17:24:47 · 541 阅读 · 0 评论 -
Git大全
http://blog.jobbole.com/25877/注意下面的相关链接原创 2015-10-21 13:32:15 · 254 阅读 · 0 评论 -
bitbake penEmbedded 入门 (一):OpenEmbedded 简介
http://blog.csdn.net/fmddlmyy/article/details/3254033转载 2015-11-12 22:44:57 · 619 阅读 · 0 评论 -
C/C++好书推荐
菜鸟级书籍1.《C程序设计》 谭浩强 这是一本国内很多大学教材,初学者还是很适用的。2.《C++Primer第四版》 这是学习C++ 很好的一本书,书很厚,要有耐心,基础与经典的结合,需要时间好好理解消化。基础的就说这两本吧!其他的也记不得了。 中级书籍1.《C和指针》 指针是C语言的精华,要学好C,就要用好指针。2.《C陷阱与缺陷》原创 2015-05-21 09:49:40 · 509 阅读 · 0 评论 -
网址
http://www.cocoachina.com/special/fornew.html原创 2015-03-31 17:27:25 · 278 阅读 · 0 评论 -
gerrit的搭建
本文将详细记录如何在一个全新的Ubuntu系统中安装及配置Gerrit服务器的相关详细步骤。1.安装Ubuntu12.xx(本人使用的是12.10,其他版本未测试)2.配置java环境下载jdk-6u34-linux-x64.bin(百度google),终端中执行安装(如没有权限,则执行 chmod a+x jdk-6u34-linux-x64.bin)$: ./j原创 2014-10-08 16:05:48 · 1839 阅读 · 0 评论 -
gbs
一 Building with GBS LocallyThe build sub-command builds RPM packages locally:$ gbs build -R repository -A ARCH [options] [package git dir]The [package git dir] option is optional. If not speci原创 2014-10-11 11:30:35 · 3209 阅读 · 0 评论 -
uboot
Hi all, I am using u-boot from git://git.denx.de/u-boot-x86.git I build u-boot by: make coreboot-x86_config make u-boot is then set as a payload for coreboot. I then ru原创 2014-12-11 00:07:16 · 488 阅读 · 0 评论 -
Ubuntu更换内核方法
目前,我的Ubuntu系统的内核版本是3.11.0,我想使用低版本的内核3.2.65来替代它,步骤如下:以下过程全部在root权限下操作。1、 安装必备软件编译工具:#apt-get install libncurses5-dev build-essential kernel-package注意:(1)libncurses5-dev是为之后配置内转载 2015-01-20 16:26:14 · 514 阅读 · 0 评论 -
Ubuntu更换内核方法
目前,我的Ubuntu系统的内核版本是3.11.0,我想使用低版本的内核3.2.65来替代它,步骤如下:以下过程全部在root权限下操作。1、 安装必备软件编译工具:#apt-get install libncurses5-dev build-essential kernel-package注意:(1)libncurses5-dev是为之后配置内转载 2015-01-20 16:32:49 · 607 阅读 · 0 评论 -
同程购票系统流程图
原创 2015-03-16 13:46:50 · 2054 阅读 · 0 评论 -
制作带initrd的uImage
export CROSS_COMPILE=...make ARCH=arm menuconfig这里特别注意,在Busybox Settings --> Build Options 里务必选上“Build BusyBox as a static binary (no shared libs)”表示把Busybox编译成静态库!其他保持默认值,然后保存makemake insta原创 2015-12-29 14:41:41 · 1023 阅读 · 0 评论 -
uboot启动流程分析
http://blog.csdn.net/skyflying2012/article/details/25804209转载 2016-03-07 10:51:46 · 248 阅读 · 0 评论 -
linux sed 命令总结
======博主所学知识来着于恩师马哥的亲授======马哥教育“2014夏令营”开始啦!!!马哥教育是目前性价比最高的Linux培训,国内好评度排名第一,并被网友称为Linux界的"黄埔军校",全部课程采用Centos6.5x86_64讲解,经过几期网络班的总结和锤炼,逐渐完善的课程体系,学员学习进度监督和优质的考试系统检验学员掌握程度,活跃的在线答疑环节,名师陪伴,牛人指点,精彩不容错过。详情转载 2017-12-29 11:03:30 · 472 阅读 · 0 评论 -
虚拟地址到物理地址的映射
虚拟地址和物理地址========================================= CPU通过地址来访问内存中的单元,地址有虚拟地址和物理地址之分,如果CPU没有MMU(Memory Management Unit, 内存管理单元),或者有MMU但没有启用,CPU核在取指令或访问内存时发出的地址将直接传到CPU芯片的外部地址引脚上,直接被内存芯片(以下称为物理内存,以便与虚...转载 2018-03-07 19:17:54 · 3353 阅读 · 0 评论 -
cpufreq 五种模式和手动提升性能脚本
echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor -- disable DVFSecho 0 >/sys/devices/platform/imx_busfreq.0/enable --- disable bus frequencycpufreq是一个动态调整cpu频率的模块,系...转载 2018-03-08 10:39:41 · 18939 阅读 · 0 评论 -
分享一个开源的音频分析软件
https://www.audacityteam.org/原创 2018-04-24 15:11:44 · 20744 阅读 · 3 评论 -
高通camera结构(摄像头基础介绍)
摄像头基础介绍 一、摄像头结构和工作原理. 拍摄景物通过镜头,将生成的光学图像投射到传感器上,然后光学图像被转换成电信号,电信号再经过模数转换变为数字信号,数字信号经过DSP加工处理,再被送到电脑中进行处理,最终转换成手机屏幕上能够看到的图像。数字信号处理芯片DSP(DIGITAL SIGNAL PROCESSING)功能:主要是通过一系列复杂的数学算法运算,对...转载 2018-05-11 11:04:47 · 4608 阅读 · 0 评论 -
drm test
//Openfd = drmOpen("imx-drm", NULL);//Get resourcesresources = drmModeGetResources(fd);crtc_id = resources->crtcs[0];connector_id = resources->connectors[0];//Get modesconnector = dr...原创 2018-09-11 10:54:05 · 2086 阅读 · 0 评论 -
cat /proc/meminfo 详解
$cat /proc/meminfoMemTotal: 2052440 kB //总内存MemFree: 50004 kB //空闲内存Buffers: 19976 kB //给文件的缓冲大小Cached: 436412 kB //高速缓冲存储器(http://baike.baidu.com/view/496990....原创 2019-01-10 12:24:58 · 3277 阅读 · 0 评论 -
/proc/sys/kernel/kptr_restrict
/proc/sys/kernel/kptr_restrict原创 2019-01-10 12:54:41 · 1687 阅读 · 2 评论 -
commit_generate.sh
#!/bin/shPROJECTS=`cat .repo/manifests/default.xml .repo/manifests/imx_proprietary.xml | grep path= | awk '{print $2;}' | sed 's/path=//g;s/\"//g'`TOP=`pwd`rm ./android_commit.logfor project in ...原创 2019-01-14 09:59:31 · 240 阅读 · 0 评论 -
软件开发中常用调试技巧的原理和实践
调试是软件开发过程中必不可少的环节,对于嵌入式开发者来讲很多工作都是体现在调试上,有句话讲“程序不是写出来的,好程序是调出来的”一点不夸张。纵观来看调试可以分为硬件断点调试和软件断点调试。硬件调试需要CPU的支持,CPU内部提供了两组寄存器用来存储设置的断点,但是这种场景决定于内部硬件设计与调试器和其他调试工具无关。本chat主要讲软件层面的调试,也是开发者工作中最常用到的调试方法。 谈到软件,无原创 2017-09-30 17:58:16 · 4544 阅读 · 1 评论 -
在虚拟机里使用代理
Edit the proxy server in /etc/bash.bashrcrzfwch:~$ gedit/etc/bash.bashrc & # edit the proxy servicer # This function allows you toset up the http and ftp proxies in a terminal window for#原创 2017-08-18 12:32:02 · 4853 阅读 · 0 评论 -
linux内核升级与源代码下载步骤
内核升级:1.sudo apt-cache search linux-image-xxx 查看镜像2.sudo apt-cache search linux-headers 查看头文件3.sudo update-grub下载镜像对应的内核sudo apt-get source拷贝对应的配置文件cp /boot/config-xxx .config 编译内核原创 2013-12-28 14:49:57 · 930 阅读 · 0 评论 -
将Android移植到ODroid上
如果你只是用prebuilt版的,那么直接去网站上下载个img,然后刻到SD卡上就好了img下载地址:http://com.odroid.com/sigong/nf_file_board/nfile_board.php?tag=ODROID-PC做启动盘的命令:$sudo dd if=*.odt out=/dev/sdb bs=4096但是,大多数时候,这个img只能将li原创 2014-03-01 23:08:46 · 925 阅读 · 0 评论 -
qt移植到arm上的过程
1.下载Qt源码包 qt-everywhere-opensource-src-4.7.3.tar.gz;2.解压 tar -xvfz qt-everywhere-opensource-src-4.7.3.tar.gz3.修改文件qt-everywhere-opensource-src-4.7.3/mkspecs/qws/linux-arm-g++/qmake.conf QMAKE_原创 2015-11-03 14:24:47 · 1392 阅读 · 0 评论 -
opensource流程
有幸能够参与公司的开源项目,第一次感受到了开源的魅力,相信这是每个热爱技术人的共同追求,但是在加入开源项目之前对开源的规则以及运行模式的了解是必要的,无论是聊天方式还是review代码的流程对开源工作者都是必要的:二、安装msmtp和git-email点击左边栏的“软件中心”,在搜索框中输入“msmtp”,选择安装即可,如下图所示。“git-email”安装同理。三、配置msmtp原创 2015-03-03 09:49:21 · 1368 阅读 · 0 评论 -
alsa-lib&alsa-utils移植到arm的脚本
搞过系统的人应该知道framework和driver之间有一层lib,下面就讲一下音频框架中对应的lib库和一些工具alsa-lib&alsa-utils。alsa-lib for arm:>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>#!/bin/bashecho "Building alsa li原创 2014-03-10 17:17:32 · 1607 阅读 · 0 评论 -
基于双核的双系统制作
最近在做一个项目,是基于双core跑双linux系统的架构,有点类似于linux里的SMP概念,分为主CPU和次CPU。首先主CPU把系统跑起来后,由其中的驱动(我们可以叫做loader驱动)去加载另外一个次CPU然后跑次linux系统。也许有些小伙伴会问两个linux如何在不同的core上跑起来呢,内存怎么访问,外设怎么访问呢。我们这边可以把内存平均分成两份,一份给主CPU访问,一份给次CPU访原创 2016-04-11 15:26:31 · 3616 阅读 · 1 评论 -
Linux进程模块
相信每个技术者对操作系统都有着莫名的好奇学习冲动,个人认为对操作系统而言有两个点很重要,一个是内存,另外一个就是本文要讲的进程。个人打算从3个方向对进程进行讲解和学习,分别是进程管理,进程调度,进程间通信。废话少说,下面我们言归正传。一.进程管理原创 2016-10-21 12:36:12 · 1029 阅读 · 0 评论 -
linux调试工具
stripaddr2lineftrace原创 2017-03-21 08:51:59 · 719 阅读 · 0 评论 -
Linux中的spinlock和mutex区别
https://github.com/digoal/blog/blob/master/201611/20161109_02.md转载 2017-07-12 20:47:48 · 1332 阅读 · 0 评论 -
usb测试
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <pthread.h>#include <libusb.h>#include <semaphore.h>#include &原创 2019-01-23 12:44:23 · 2038 阅读 · 0 评论