<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[westlor的专栏]]></title><description><![CDATA[I'm westlor.]]></description><link>https://blog.youkuaiyun.com/westlor</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; westlor]]></copyright><item><title><![CDATA[Arm64平台搭建交叉编译开发环境-以FT1500a cpu+Kylin4.0.2-sp2系统为例]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/105028840</link><guid>https://blog.youkuaiyun.com/westlor/article/details/105028840</guid><author>westlor</author><pubDate>Sat, 04 Apr 2020 18:46:47 +0800</pubDate><description><![CDATA[最开始接触ARM-Linux平台下开发时，用的还是ARM7/ARM9之类的处理器，32位的CPU，系统运行在norFlash+nandFlash组合的存储上。由于ARM7/ARM9的处理器性能偏弱，而且配套的存储空间一般也不够打，所以大多数情况下都采用交叉编译开发的方式，具体实现的方式就是在x86-Linux平台下，下载安装一个交叉编译器。Ubuntu系统下安装交叉编译器可以通过apt命令在线安装...]]></description><category></category></item><item><title><![CDATA[3.UEFI-edk2 增加中文显示]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/104793188</link><guid>https://blog.youkuaiyun.com/westlor/article/details/104793188</guid><author>westlor</author><pubDate>Sun, 22 Mar 2020 18:16:13 +0800</pubDate><description><![CDATA[edk2源码中默认只有英文和法文的字库，在UI界面上或者shell终端打印中文字符，要么显示的是乱码，要么就没显示。例如，上一篇博客中的TestoneApp.cpp中，增加一行带中文的打印：
Print(L"Hello, world!\r\n");
 Print(L"UEFI-dek 你好..!\r\n");

实际上运行的效果是如下图这样的。


...]]></description><category></category></item><item><title><![CDATA[2.UEFI-edk2 编写第一个应用]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/104600324</link><guid>https://blog.youkuaiyun.com/westlor/article/details/104600324</guid><author>westlor</author><pubDate>Sun, 08 Mar 2020 15:31:11 +0800</pubDate><description><![CDATA[上一章把UEFI的编译开发和模拟器环境都搭建好了，这里开始写第一个应用。写之前先简单介绍下UEFI-edk2的源码目录结构，源码目录下主要有以下这些子目录：
BaseTools: 包含代码编译所需的二进制编译工具集和编译环境配置文件。
MdePkg: 包含各个平台通用的基本的底层库函数、协议和工业标准。
MdeModulePkg：包含一系列各平台通用的模块，其中包括MdePkg中公共库的应用模块示...]]></description><category></category></item><item><title><![CDATA[1.UEFI-edk2 开发环境搭建]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/104580916</link><guid>https://blog.youkuaiyun.com/westlor/article/details/104580916</guid><author>westlor</author><pubDate>Sat, 29 Feb 2020 21:14:10 +0800</pubDate><description><![CDATA[EDK2是UEFI使用比较广泛的开源实现，支持在多种操作系统平台下进行开发。为了开发调试方便，这里采用在win10下用visual studio进行UEFI的开发。VS号称地表Top one的IDE，功能强大自不在话下，开发起来往往起到事半功倍的效果。此篇博客我们完成edk2源码的开发编译环境的搭建，同时编译运行一个模拟器，用来测试efi程序。
一、相关工具安装
首先下载安装vs2017或者vs2...]]></description><category></category></item><item><title><![CDATA[phoronix-test-suite测试套件使用-树莓派32位系统 vs 64位系统下CPU性能对评测]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103995491</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103995491</guid><author>westlor</author><pubDate>Wed, 12 Feb 2020 22:38:48 +0800</pubDate><description><![CDATA[一直传闻64位系统性能更好，但到底好多少，一直也没个量化的标准，今天就来测试下树莓派4运行32位系统和运行64位系统下CPU的性能差异。
树莓派4官方系统为Raspbian，为了保持与旧版树莓派软硬件的兼容，官方Raspbian系统一直是32位的。而树莓派4的CPU BCM2835却是实实在在的64位CPU，在32位系统下并不能完全发挥其性能优势。从网上搜索看，为树莓派移植64位系统的玩家不在少数...]]></description><category></category></item><item><title><![CDATA[CTK插件框架学习6-注册接口调用]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103979363</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103979363</guid><author>westlor</author><pubDate>Tue, 14 Jan 2020 21:09:24 +0800</pubDate><description><![CDATA[插件化编程后，各个插件直接暴漏在外面的接口就是固定的了。与自定义类不同，插件化定义的类仅有start()与stop()接口用以实现，使用该插件时，能直接调用的也只有这两个接口。如何在插件中调用自定义接口呢？Ctk插件框架通过注册接口实现。
在上一篇博客中插件间通信就是一个调用注册接口的例子，代码如下。ctkEventAdmin插件有自定义接口postEvent(const ctkEvent&amp...]]></description><category></category></item><item><title><![CDATA[Centos禁止屏幕虚拟键盘弹出]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103939573</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103939573</guid><author>westlor</author><pubDate>Sat, 11 Jan 2020 19:54:55 +0800</pubDate><description><![CDATA[使用centos7.5版本系统的时候，接触摸屏的情况下，点击屏幕老是会触发屏幕虚拟键盘弹出。原本触摸屏下虚拟键盘的作用是便于输入，可以在不用外接键盘的情况下，直接用屏幕键盘作为输入，可是当想把屏幕键盘关掉却发现并不是那么简单。
关闭屏幕键盘的主要原因是运行用户程序时，在触屏界面下操作程序界面，在不点击输入框的情况下，点击界面图标/文字，屏幕虚拟键盘也总会偶尔弹出，影响用户体验。要关掉屏幕键盘，首选...]]></description><category></category></item><item><title><![CDATA[CTK插件框架学习5-插件间通信（Netlink实现热拔插监控）]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103846927</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103846927</guid><author>westlor</author><pubDate>Wed, 08 Jan 2020 20:08:26 +0800</pubDate><description><![CDATA[本章会写一个插件，实现通过NETLINK读取linux系统中的hotplug信息，比如usb设备、SD卡、磁盘等设备的插拔事件产生的信息，将读到的信息通过插件间通信的方式发出。
1. eventadmin库编译
CTK Plugin Framework下插件间通信是通过事件管理机制实现的，其代码位于CTK/Libs/PluginFramework/service/event目录下，使能事件管理机制...]]></description><category></category></item><item><title><![CDATA[QT之C++程序引用.pro文件中宏定义]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103842578</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103842578</guid><author>westlor</author><pubDate>Sun, 05 Jan 2020 15:27:40 +0800</pubDate><description><![CDATA[Qt开发中，可以在.pro文件中设置一些宏定义的值，来改变工程的编译配置。如下图所示，一个最基本的工程中.pro文件中，会有QT、CONFIG、SOURCE、TARGET等宏定义的设置，其中QT指定工程用的qt的功能模块，SOURCE指定工程源文件，TARGET指定生成的目标文件，有的工程还会添加HEADERS与LIBS的宏定义，用于指定工程编译所需的头文件核动态库文件的路径与名称。
那么在c++...]]></description><category></category></item><item><title><![CDATA[CTK插件框架学习4-创建跨平台插件工程]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103809188</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103809188</guid><author>westlor</author><pubDate>Thu, 02 Jan 2020 20:42:42 +0800</pubDate><description><![CDATA[在上一篇博文中已经实现了一个简单的插件和测试程序的编写，但是插件跟应用是分开独立的工程。实际应用开发中需要把相关的库和头文件打包到一个工程中，如下图所示，这样比较方便调试开发，也为创建跨平台工程提供了便利。

此节我们将创建一个初步完整的工程，工程文件中包含应用程序以及要使用的各个插件，同时将各个平台编译后的ctk插件库文件也整合到一起。目前支持如下三个平台：




系统
CPU
编译器
说明
...]]></description><category></category></item><item><title><![CDATA[CTK插件框架学习3-第一个插件编写]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103719609</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103719609</guid><author>westlor</author><pubDate>Thu, 26 Dec 2019 18:26:41 +0800</pubDate><description><![CDATA[前两章把CTK插件库编译好了，这里篇编写一个插件试一下，共需要创建两个小工程，一个是插件库，一个是测试程序。
1. 插件库编写
1.1 创建工程
打开Qt creator，新建一个Emputy qmake Project，并给工程命名为ctk-plugin-first。Kits选择"Desktop Qt5.12.3 MSVC2017 64bit"。

更改ctk-plugin-first.pro文...]]></description><category></category></item><item><title><![CDATA[CTK插件框架学习2-编译CTK-VS2015]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103711506</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103711506</guid><author>westlor</author><pubDate>Thu, 26 Dec 2019 16:58:42 +0800</pubDate><description><![CDATA[CTK基于MINGW7.3_64版本编译后，运行测试并不顺利，遇到了很奇怪的问题，编译生成的测试程序只有部分能正常运行。mingw工具用来调试程序还是不太方便，特别是这种编译动态库程序的时候。不过无妨，Qt在windows平台下还有MSVC编译器可选，另外，Visual Studio号称地表最强IDE，在编译调试程序方面用起来想必也要更加顺手一些。接下来尝试通过VS2015编译运行CTK库，并与M...]]></description><category></category></item><item><title><![CDATA[CTK插件框架学习1-编译CTK-MINGW]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103654306</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103654306</guid><author>westlor</author><pubDate>Tue, 24 Dec 2019 17:50:23 +0800</pubDate><description><![CDATA[首先下载CMake官网下载地址：https://cmake.org/download/

]]></description><category></category></item><item><title><![CDATA[phoronix-test-suite测试套件使用-树莓派4 vs FT2000/4性能评测2-CPU性能对比测试]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103646067</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103646067</guid><author>westlor</author><pubDate>Sat, 21 Dec 2019 17:45:04 +0800</pubDate><description><![CDATA[接上篇，首先确保两个平台均安装了phoronix-test-suite软件以及测试CPU性能的几个软件包。
1. 运行测试-ft2000/4
首先通过sudo su命令切换到root用户，在root用户下执行如下命令
phoronix-test-suite run coremark gmpbench c-ray  openssl sample-program

在探测的提示中，输入测试的名称cpu...]]></description><category></category></item><item><title><![CDATA[phoronix-test-suite测试套件使用-树莓派4 vs FT2000/4性能评测1-软件简介与安装]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103644951</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103644951</guid><author>westlor</author><pubDate>Sat, 21 Dec 2019 16:42:29 +0800</pubDate><description><![CDATA[1. 简介
phoronix-test-suite是Linux系统下一款简洁易用、功能强大的测试套件，该软件中集成了各式各样的测试软件，其中的测试可以分为System、Processor、Memory、Graphical、Disk、Network几大类。phoronix-test-suite提供了web gui界面供用户使用，同时也支持通过终端命令进行测试操作。该软件最大的特点是可以将测试结果上传...]]></description><category></category></item><item><title><![CDATA[基于QT的整机测试工具1-软件介绍]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103015905</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103015905</guid><author>westlor</author><pubDate>Fri, 20 Dec 2019 20:50:09 +0800</pubDate><description><![CDATA[编写TestSOP整机测试接口软件的初衷是方便对装有linux系统的设备进行整机接口遍历式测试，因为单独对一台设备测试时，不用辅助软件的情况下，很容易漏测，同时某些测试结果不宜保存，对多台设备进行测试后不利于结果对比分析。

...]]></description><category></category></item><item><title><![CDATA[arm处理器下的对齐异常1-简介]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/102917249</link><guid>https://blog.youkuaiyun.com/westlor/article/details/102917249</guid><author>westlor</author><pubDate>Wed, 18 Dec 2019 17:59:38 +0800</pubDate><description><![CDATA[问题引入
什么是对齐异常呢，为什么ARM处理器下会有对齐异常？这个要先从arm 32位处理器下的两条指令LDR与STR说起。作为A32指令集的两条最基本指令，STR/LDR 可以用于寄存器与内存之间的数据交换，LDR是将内存中的数载入到寄存器，STR是将寄存器中的数载入内存。A32下LDR与STR一次操作4个字节，例如如下汇编程序：
LDR     R1, 0xE0000000

该指令将0xE0...]]></description><category></category></item><item><title><![CDATA[记一次centos系统下的串口登陆异常问题]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/103031536</link><guid>https://blog.youkuaiyun.com/westlor/article/details/103031536</guid><author>westlor</author><pubDate>Sat, 16 Nov 2019 16:37:39 +0800</pubDate><description><![CDATA[在使用centos7.5版本系统时，安装配置好桌面环境后，发现通过串口登陆系统出现了问题。
https://www.centos.org/forums/viewtopic.php?t=61569
https://bugzilla.redhat.com/show_bug.cgi?id=691374

...]]></description><category></category></item><item><title><![CDATA[imx6芯片通过EIM总线外扩多路sja1000 CAN控制器]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/79046878</link><guid>https://blog.youkuaiyun.com/westlor/article/details/79046878</guid><author>westlor</author><pubDate>Mon, 15 Jan 2018 21:09:13 +0800</pubDate><description><![CDATA[有时会需要扩展多个CAN接口，在CAN设备比较多的时候作分组控制。这里使用imx6q芯片，它本身已经自带了两个CAN接口，如果需再扩展4个接口，就要想想办法了。sja1000是一个经典的CAN控制器，稳定可靠，由于它在业界使用方案比较成熟，用它来扩展再好不过。imx6q作为一款性能强大的处理器，扩展sja1000这种相对慢速的芯片，着实有点屈才。可是没办法，项目需要，就像PCIE转ISA，或者US]]></description><category></category></item><item><title><![CDATA[构建安装ARM Ubuntu系统]]></title><link>https://blog.youkuaiyun.com/westlor/article/details/78982649</link><guid>https://blog.youkuaiyun.com/westlor/article/details/78982649</guid><author>westlor</author><pubDate>Fri, 05 Jan 2018 16:19:45 +0800</pubDate><description><![CDATA[一、简介 
 Ubuntu作为通用化的桌面系统，平易近人。我比较喜欢在Windows系统上安装个ubuntu虚拟机，用来做一些嵌入式linux应用的开发。之前用到嵌入式开发套件时，其配带光盘里都会给出对应的linux系统，一般版本过时，功能简陋。这里自己构建安装系统，可以在不改变原有linux内核的情况下，搭建一个自己想要的开发环境，系统版本、桌面环境啥的，自由更换，方便定制。 
一个完整的基于L]]></description><category></category></item></channel></rss>