GitMessage过滤与Git提交的邮件分类脚本

最近在对Freescale i.MX6 kernel代码进行一些对比的时候,写了两个内容类似的简单脚本。共参考。 脚本放在了bitbucket的snippets中:GitCommitFilterAndSorter, 里面有两个文件。两个脚本都需要传入两个hashID,作为git 起点与终点,即from与util。 CommitMsgFilter.sh 这个脚本就是将Commit Message是以”ENGR”开头的条目skip掉,然后output出其他的。ENGR是freescale官方补丁Commit Message的开头,因此这个脚本其实是为了找出非Freescale的BSP 补丁。 例如将这个脚本拷贝到了imx6的kernel目录之后,可以使用类似下面的命令来查看非BSP提交,并去掉一些Merge branch与Merge tag的提交:

得到的结果类似如下:

  CommitMsgSort.sh 这个脚本按照提交者的邮件进行分类,将各种的提交记录到以邮件地址命名的文件中,这样子可以统计出开发团队中各自的提交量。例如将脚本下载到了内核目录下后,可以使用类似下面的命令来获取大家的提交数量:

Continue reading »

Algorithm 4th environment setup

algs4的官方给出环境搭建步骤较多,在github找了一下,看到了aistrate的repo,发现用这个非常方便。   1. 材料与环境准备 1.1 代码与数据准备

在clone下来的文件夹中有需要的源码,同时还有stdlib.jar与algs4.jar两个Package,是对一些static method的封转,这两个文件需要添加到classpath中。 1.2 安装openjdk

2. 编译与运行环境 2.1  使用命令行 Compile:

Run:

Continue reading »

Renesas RCar2 Cortex-A15的Flash工具:M2A-Flasher

作用 用于烧写于加载SPI NorFlash前面16K的内容到SoC内部SRAM(Secure RAM)中,同时跳到加载的内容起始地址开始运行。 代码获取与编译、以及使用方法 获取

或者访问M2A-Flasher github repo页面获取 编译 修改Makefile中的CROSS_COMPILE变量 然后直接输入make即可。 使用 使用Jtag工具加载编译出来的文件到SoC的内部SRAM的0xe6300000位置,并跑起来即可。 缘由 Renesas的RCar2系列SoC只支持从SPI(QSPI) NorFlash或者是Parallel NorFlash启动,如果是Parallel NorFlash,那么直接使用Jtag工具,做适当的配置即可直接烧写程序进去;但是如果使用的是SPI

Continue reading »

用gitlabCI快速搭建一个GitServer与CI

一般的公司一般都有一个或者多个中央Git Server,托管着所有项目代码;同时当一个项目很大,由许多个工程组成,例如Tizen和Android,那么一般还有Continuous Integration(CI)在有人push代码到工程时编译整个项目,编译出错一般CI会发邮件给提交者和管理者,从而可以及时修正错误。 Git Server安装与使用 Git server很多,列举一部分: WINDOWS GitStack:免费版只能有两个账号 SCM Manager LINUX GitLab Git-Deamon Git使用-bare生成 获取与安装 这里使用gitlab,到这里下载bitnami gitlab一键安装包。安装非常简单,只需要添加可执行权限然后用sudo ./XXX.run 执行即出现图形化的安装向导。在安装过程中需要设置用户名和密码用于后面配置使用。

Continue reading »

SPI Nor Flash

SPI协议 Slave与Master 一般而言,提供clock的一方称为master。如下图(7-1)中的SCLK方向可知:Processor为master,而Peripheral为slave。 SPI设备接口 SPI uses four main signals: Master Out Slave In (MOSI) Master In Slave Out (MISO) Serial

Continue reading »

Speed up Booting Embedded System

嵌入式产品的启动时间一般是一个指标,像大部分Android手机几乎没有为启动加速做过优化,可以改进的地方非常多。当然因为Android用得最多的地方是手机,难得冷启动一次。 用户从按下电源键开始,看到启动logo或者启动动画到出现可操作的Home/App画面,需要的时间越少,自然越好,产品的竞争力也越强。 一般没有系统的嵌入式设备启动都是上电即进入正常工作流程,这里只说linux/Android及类似的系统;下面将会简单的说明和列举从启动流程到各个启动过程都可以使用的方法,以及快速启动。 ☞启动流程 要做启动时间优化,需要对启动过程非常熟悉。下面从启动流程说起。 不同的嵌入式设备启动流程很可能不一样,但是绝大部分的linux/Android设备都是一样或者类似的。  ❤图片来源于:http://processors.wiki.ti.com/index.php/Optimize_Linux_Boot_Time ☞工具准备: 串口行间数据计时工具Grabserial的安装与使用 因为依赖python的serial模块,先安装它,在Ubuntu中安装python-serial:

获取工具脚本:

添加可执行权限:

设置以U-boot字符串出现为基准计时的使用示例:

如果要同一行内部计时,例如解压kernel的时候是在一行内的,可以使用-i选项:

我们从MMC出现时开始计时,以下为实例log,其中第一列为从出现指定字符串开始的计时,第二列为与上一行log的间隔:

Continue reading »

ARM Linux BenchMark

背景说明 许多公司有很多不同的ARM SoC的研发产品,ARM核心可能有Cortex-A8/A9/A15,核心数可能有单核双核和四核.现在,几乎每出一款手机,网络上马上就有人对其评测.对比和评测不同ARM SoC 芯片以及嵌入式系统是非常有必要的;通过不同的SoC和其运行的OS对比,可以帮助我们了解我们产品的性能,并根据测试得知系统的瓶颈、找出需要改善的方面。 嵌入式产品的硬件一般都是由处理器、主存、存储器、显示设备、以及其他外设组成。嵌入式产品的软件方面,一般都选用嵌入式系统,如小的RTOS,如VxWorks、μC/OS-III、RTT、DJYOS、FreeRTOSLinux,或者是更复杂的Linux、Android、WinCE。评测和对比的内容一般也主要由软件和硬件这两个方面组成。 预备基础知识 如果只是对Andorid系统或者是WinCE相关系统评测,那么我们完全可以下载一些应用(安装)运行即可评测。而如果要评测的嵌入式系统是基于Linux自己定制的甚至没有GUI的,则很可能需要我们下载源代码编译。因此对基础的编译知识的了解必不可少①。编译配置又与ARM SoC构架相关,所以需要了解一下与ARM构架以及有关的交叉编译的选项,比较ARM SoC种类较少,所以这类问题变得很简单了,一般我们需要根据需要配置-mfpu和-march以及-mfloat-abi,以及编译优化选项。 评测工具介绍 评测工具有很多,在这个网页列出了几十个工具。单单系统性评测工具就有7个。那什么是系统性的BenchMark(引用自unixbench): Do be aware that this is a system

Continue reading »

课程设计: 可以用上位机改变下位机的多功能闹钟

功能 时间 — DS1302 温度 — DS18B20 温度报警 闹钟 修改日期时自动更改星期 上位机改变下位机单片机的DS1302时间 闹钟时间 温度报警上下限值 可以通过键盘改变DS1302时间 闹钟时间 温度报警上下限值 改变值时光标会闪 可以控制闹钟的开关并在第一页上显示符号 年月日时分秒的临界值控制 平年闰年对应的二月判断

Continue reading »