Carlos Wei (Haochen)
Carlos Wei (Haochen)
# Linux System : Managing Linux Services - initramfs The NXP-IMX6ULL is the NXP cortex-A7 (Armv7 arch) and the Xilinx ZYNQ is the cortex-A53 (Armv8 arch). We will use the...
# (Embedded) NXP-imx6 initialization note: The original `README` has been changed to `README.old` # 1. 编译内核 ## 1.1 Compiling the Linux Kernel for IMX6 `[email protected]:carloscn/imx-linux-4.1.15.git` `make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean` `make...
# Linux System - Managing Linux Services - inittab + init.d ## 1. The /etc/inittab File When init starts up, it reads the **/etc/inittab** configuration file. While the system is...
# [Embedded] cross-compile the cryptsetup on Xilinx ZYNQ aarch64 platform ## 1.1 Dev Env This document is to describe how to transplant the `cryptsetup` (userspace) and `dm-crypt` (kernel space) to...
# Linux进程之间的通信-管道(上) * 标准输入、标准输出和标准错误 * 进程管道 * popen * pipe调用 * 父进程和子进程 * 命名管道:FIFO * 客户/服务器架构 ## 1. stdin, stdout, stderr 作为Linux进程之间通信的基础,标准输入、输出和标准错误是必须了解的概念。我们在Linux的userspace层面shell上的机制每天都要和这三个东西打交道。我直接抄文献[^1]了: >* stdin: Stands for standard input. It takes...
# 01_Makefile_makefile_summary A project has innumerable source files that are organized along various paths based on type, function, and module. The rules in the makefile state which files should be...
# DSP-F2812的时钟和系统控制 # 1振荡器OSC和锁相环PLL DSP里面肯定有时钟,没有时钟DSP怎么工作?这个我从时钟怎么产生的开始解释,咱们了解了解是有好处的。首先两个概念,振荡器和锁相环。(振荡器:(oscillator):是一种能量转换装置——将直流电能转换为具有一定频率的交流电能。其构成的电路叫振荡电路.晶振),(锁相环:(phase Locked Loop):是一种信号处理设备-------简单的说就是能将信号同步,相位统一达到同步的效果!) 其实,原理就是,由振荡器产生信号,但是产生的信号不同步,所以用了个锁相环把信号的相位弄一致,这样频率一样,幅度一样,相位也一样就形成了同步的时钟信号。 看一看F2812里面是怎么设计的呢?  左边是振荡器,邮编是PLL,两个联合成为时钟的生成装置。看一看,未处理的时钟信号从振荡器出来,分成三个路线,第一个路线直接出去,第二个是PLLBypass,PLL旁路,第三个叫PLL。然后我们来研究一下这几个有啥作用。最后的CLKIN和从振荡器出来的XCLKIN有啥关系呢。我们通过XF_PLLDIS(下图)  第101引脚,看到了吧。设置时钟的关系,XF_PLLDIS引脚。如果这个引脚禁止,就是使能PLL模块,直接用的就是振荡器出来的时钟信号,也就是XF_PLLDIS = 0;。如果XF_PLLDIS为高电平,PLL被使能,则表示振荡器产生的时钟要经过PLL模块。但是上图1-1明明PLL引出了两个引脚是不?那么到底选哪个?是PLL旁路还是直接PLL。当然啦,肯定有方法,PLL的控制不光是这个一个,这个仅仅是个使能位置,而已。我们需要进一步的设置一个寄存器,PLLCR,控制寄存器来有效的改变是选用哪个方式。(下面是原版英文) > The on-chip oscillator circuit enables a crystal to be attached to the F281x and...
# DSP-F2812的事件管理器EV 2014年5月2日, 于沈阳化工大学 5号楼 明天就是五一了,本想在五一前夕把F2812有关的基础知识和原理总结完毕,没想到事儿太多,四月的最后一天还在整理事件管理器EV,进度差了,得抓紧时间了。时间管理器的页码很多,有关于它的资料也是很丰富的。第二次的学习,相信你与我一样,都有收获。 事件管理器,名字是事件管理,我们猜测就是跟发什么事儿有关,然后这个事儿有特定的管理机制进行管理。那些事儿是什么事儿呢?我们先放一放。首先呢,我先说个东西PWM波,这个东西就是个方波,但是高低电平的时间并不是一致的,是按照占空比来算的。这个东西有啥用呢?PWM波据我所知能进行的就是电机的控制,电力调速的,它的发现肯定节约能源。事件管理器的功能之一就是PWM波的产生,它可以有好几种方式产生PWM波呢。 我先说说EV要说些什么。首先本模块包括定时器(CPU也有,它也有),全比较/PWM单元,捕获单元,正交编码脉冲电路。共四大天王,组成EV家族。功能是相当强大。而最重要的EV的功能就是产生PWM波,四大天王各有各的功能,以自己的方式产生PWM波。 ## 1. 事件管理器的功能 DSP有两个EV,EVA,EVB,两个EV除了名字不同之外其他的功能是完全一样的。所以我们只说EVA,然后EVB我们就可以把EVA的原理对称过去。 EVA包含2个16位的通用定时器,3个比较单元,3个捕获单元,1个正交编码电路。我分别解释下四大天王: * 通用定时器:CPUTIMER0,1,2也同样是定时器,这个通用定时器和CPU定时器是两个东西,但是它俩的原理相似,区别在于CPU定时器为32位的,通用定时器是16位的,然后时钟不一样,工作方式也不一样,而且EV的通用定时器除了能计时之外,每一路还能产生单独的PWM波形。(高级了是吧!) * 比较单元:他就是上面说的【全比较/PWM单元】,名字中携带PWM单元,看来是产生PWM的主力,每个比较单元可以产生一对(两路)互补的PWM波形。3个比较单元就可以产生6路。正好可以驱动一个三项全桥电路。(一会儿讲解) * 捕获单元:功能就是捕获外部输入脉冲波形的的上升沿或者下降沿,可以统计脉冲的间隔,也可以统计脉冲的个数。通常用来对外部硬件信号的时间间隔进行测量,利用6个边沿检测单元测量外部的时间差,从而可以确定点击转子的转速。看来它的功能就是用来测量的。 * 正交编码电路:可以对输入的正交脉冲进行编码和计数,它与广电编码器项链可以获得旋转机械部位的位置,速率等信息,也用来电机控制。 看来四大天王各有千秋,通用定时器是用来计时而且产生PWM波也可以顶一顶。最多能产生4路。EVA两路,EVB两路。比较单元是PWM的主力,一个比较单元就能产生两路互补的波形,3个比较单元就是6路,再加上定时器的,一共可以产生16路。捕获单元捕获上升沿或者下降沿来捕获点点击的转速,是对PWM的测量。然而正交编码电路的也是测量功能,他的方式是对电机本身的,获取物理位置速率等信息。有可能是设置在反馈身上。 EV占用的管脚真的很多,四个通用定时器就能单独产生4路PWM波形,肯定就占用了4个引脚,比较单元更多了能产生12路呢,至少得有6个引脚啊。捕获单元同样6个,正交编码电路也得有6个。除此之外这只是功能引脚还得有其他的,包含一些,终止引脚。  ### 1) External Cmpare-output Trip Inputs...
# DSP-F2812的CMD文件 我们编写F2812文件的时候必须要添加一个CMD文件嘛!那个CMD文件的作用就是把结构体编写的文件映射到DSP内部的内存中。之前我们通过结构体和共同体的方式定义了很多的寄存器,通过语言就能控制寄存器,然而定义那么多只不过是个规则而已,只是空洞的字母,CMD文件的作用就是把定义那些空洞的字母和内存里面的地址链接起来,这样我们通过控制那些字母就能控制寄存器了。 流程:硬件 --> CMD文件 --> C链接文件 --> 头文件 --> 程序代码 Memory Map:  上面是F2812的存储映像图,我们怎么来写CMD文件,首先,我们得弄清楚点儿东西 > 存储器的种类: > > 一、补充点儿知识:咱们按照这么分:RAM和ROM和FLASH > > RAM: > 1. SRAM:静态读写存储器,速度快,容量小,断电后数据丢失。可读可写。 > 2. DRAM:动态读写存储器,速度慢,容量大,断电后数据丢失。需要刷新电路。可读可写。...