<![CDATA[蜗窝科技]]> http://hnrongyi.com/ zh-cn www.emlog.net X-026-KERNEL-Linux gpio driver的移植之gpio range http://hnrongyi.com/x_project/kernel_gpio_driver_porting_2.html 我们在[1][2]中提到过,鉴于gpio的特殊性,pinctrl subsystem特意留了一个后门(gpio range),gpio driver可以通过这个后门直接向pinctrl subsystem申请将某个pin用作gpio功能。本文将根据一个简单的示例,介绍这个后门的使用方法,以加深对相关机制的理解。

注1:本文的测试方法和[3]中的一致,即:通过gpiolib sysfs api控制LED0(GPIOA19)的亮灭,因而不再罗列详细步骤。

阅读全文>>]]>
Wed, 27 Sep 2017 14:27:43 +0000 wowo http://hnrongyi.com/x_project/kernel_gpio_driver_porting_2.html
X-025-KERNEL-Linux gpio driver的移植之基本功能 http://hnrongyi.com/x_project/kernel_gpio_driver_porting_1.html 本文将基于本站GPIO subsystem[1]相关的文章,结合”X Project”的开发过程,实现一个简单的gpio driver,并利用gpiolib提供的sysfs api进行简单的测试,进而加深对gpio相关概念的理解。

注1:本文后续的描述,kernel基于本站“X Project”所使用的kernel版本,硬件基于 ”X Project”所使用的“Bubbugum-96”平台[2]

阅读全文>>]]>
Wed, 13 Sep 2017 14:18:00 +0000 wowo http://hnrongyi.com/x_project/kernel_gpio_driver_porting_1.html
X-024-OHTHERS-在windows平台下使用libusb http://hnrongyi.com/x_project/libusb_on_windows.html 话说我们“X Project”的第一个任务就是通过USB将主机上的Image文件下载到开发板的Ram中执行(参考[1]中有关的内容),为此我们在host中porting了一个简单的应用程序(称作DFU[2]),负责和开发板ROM中的代码交流,下载并执行Image文件。为了方便,该应用程序使用libusb[3]进行USB有关的操作。

libusb不止使用起来简单,还有一个极大的优点,就是“跨平台”的特性。我们之前的例子[4]都是在Linux平台下操作的,最近由于win10内置了Ubuntu,Linux平台有关的开发工作,基本上都可以在这里完成了,因此就不需要费时、费神地切换到纯Linux环境下工作了。

不过呢,Win10的Ubuntu好是好,但没法像纯Linux系统那样支持USB设备,DFU有关的工作就无法在这里正常工作,因此就发挥libusb的特性,把“X Project” DFU[2]有关的代码在Windows下跑起来,也算感受一下“跨平台”的魅力。具体步骤如下。

阅读全文>>]]>
Sun, 23 Jul 2017 14:21:15 +0000 wowo http://hnrongyi.com/x_project/libusb_on_windows.html
X-023-KERNEL-Linux pinctrl driver的移植 http://hnrongyi.com/x_project/kernel_pinctrl_driver_porting.html 本文是“linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结”的一个实例,结合”X Project”的开发过程,介绍pinctrl driver的移植步骤,进而加深对pinctrl framework的理解。

注1:本文后续的描述,kernel基于本站“X Project”所使用的kernel版本[4],硬件基于 ”X Project”所使用的“Bubbugum-96”平台。

阅读全文>>]]>
Fri, 14 Jul 2017 13:58:51 +0000 wowo http://hnrongyi.com/x_project/kernel_pinctrl_driver_porting.html
X-022-OTHERS-git操作记录之合并远端分支的更新 http://hnrongyi.com/x_project/u_boot_merge_denx.html 本文将以“X Project1分pk10”的开发过程为例,介绍“合并远端分支的更新”的方法。事情的起因如下:

X Project”是一个学习嵌入式Linux开发全过程的小项目,项目开始的时候,u-boot、linux kernel等代码,都是直接从官方仓库的当前状态获取的(具体可参考[2])。以u-boot为例,“X Project”的u-boot[3]是2016年4月23日从u-boot的官方仓库[1]拷贝而来的。

随着时间的推移,官方仓库可能有很多更新,例如修复bug、添加新功能等,在合适的时间点,需要将这些更新合并。下面就以“X Project”的u-boot为例,介绍合并的步骤。

阅读全文>>]]>
Mon, 02 Jan 2017 14:26:22 +0000 wowo http://hnrongyi.com/x_project/u_boot_merge_denx.html