tiny4412
tiny4412相关,包含HW,u-boot,kernel,rootfs,driver...
有崖
这个作者很懒,什么都没留下…
展开
-
移植madplayer
GCC:/home/flinn/tools/4.5.1/bin/arm-none-linux-gnueabi-gccDIR: /home/flinn/tmp/mdplay/install1.zlib-1.2.8地址http://www.zlib.net/./configure --prefix=/home/flinn/tmp/mdplay/installvim Makefile...原创 2019-10-17 21:45:38 · 575 阅读 · 1 评论 -
tiny4412 驱动 (13)设备树之keys
设备树:keys { compatible = "tiny4412,keys"; tiny4412,key1 = <&gpx3 2 GPIO_ACTIVE_HIGH>; tiny4412,key2 = <&gpx3 3 GPIO_ACTIVE_HIGH>;...原创 2019-07-21 21:52:54 · 247 阅读 · 0 评论 -
tiny4412 驱动 (12)设备树之beep(pwm)
内核版本linux-4.19.27不同前面设备树之beep,只是控制gpio电平来驱动beep,这里使用pwm先看设备树beep-pwm { compatible = "tiny4412,beep-pwm"; reg = <0x139D0000 0x14>; pinctrl-n...原创 2019-07-21 21:49:13 · 1109 阅读 · 0 评论 -
tiny4412 驱动 (11)设备树之hello
设备树HelloWorld { compatible = "tiny4412, hello_world"; status = "okay"; test { label = "test"; }; };...原创 2019-07-16 20:35:48 · 338 阅读 · 0 评论 -
tiny4412 驱动 (9)beep
先说原理图其中XpwmTOUT0接的GPD0_0对于Makefile:TARGET := beepobj-m += $(TARGET).oROOTFS = /home/flinn/tmp/rootfsKERNEL = /home/flinn/tiny4412-SDK/linux-4.19.27all: make -C $(KERNEL) M...原创 2019-07-12 20:37:34 · 189 阅读 · 0 评论 -
tiny4412 驱动 (8)leds
这里同时支持4个LED和前面不同之处只是在open/write函数稍作修改即可static int led_open (struct inode *inode, struct file *file){ printk(KERN_INFO "drv open \n"); /* set GPM4_0 , GPM4_1, GPM4_2, GPM4_3 as output */ le...原创 2019-07-10 23:00:35 · 196 阅读 · 0 评论 -
tiny4412 驱动 (7)led
本文承接hello驱动的模板, 这里先看下原理图和硬件操作方法原理图:对应的GPIO:可知led1~4分别对应的GPIO是GPM4_0,GPM4_1,GPM4_2,GPM4_3,从datasheet可以抽象为如下结构/** resource** led1 gpm4 0* led2 gpm4 1* led3 gpm4 2* led4 gpm4 ...原创 2019-07-10 22:54:51 · 226 阅读 · 0 评论 -
tiny4412 驱动 (6)hello
写这个驱动的目的是作为后面字符设备的模板,这里采用最原始的方法,其实写字符设备有很多框架可以用,例如可以使用register_chrdev_region, 也可以使用platform,最简单的还可以使用misc。这里采用register_chrdev_region的方式,其他两种方式这里不赘述。先看MakefileTARGET := helloobj-m += $(TARGET...原创 2019-07-10 22:45:06 · 224 阅读 · 0 评论 -
tiny4412 驱动 (5)Heartbeat
Heartbeatstruct list_head leds_list; // 资源链表struct list_head trigger_list; // 驱动链表对于链表,总有创建, 添加,遍历这三个要素,下面简单看下这两个链表的三要素trigger_list创建driversleds/led-triggers.cLIST_HEAD(...原创 2019-06-02 13:34:46 · 437 阅读 · 1 评论 -
tiny4412 驱动 (4)eMMC驱动
emmcemmc驱动在drivers/mmc/host/dw_mmc-exynos.cstatic const struct of_device_id dw_mci_exynos_match[] = { { .compatible = "samsung,exynos4412-dw-mshc", .data = &ex...原创 2019-06-02 13:34:38 · 779 阅读 · 0 评论 -
tiny4412 驱动 (3)网卡驱动移植
网卡驱动是后面驱动的基础型号 DM9621USB_HOST_ETHNET_DP1+ USB4604USB_HOST_ETHNET_DP1- USB4604其中USB4604有四路USB一路接网卡DM9621, 一路引出标号USBH3, 另外两路USBH1heUSBH2,都是usb-typeA对于USB4604复位信号 : GPM2_4_USBRST , 接B35...原创 2019-06-02 13:34:31 · 867 阅读 · 0 评论 -
tiny4412 驱动 (2)制作根文件系统
busybox : busybox-1.22.1gcc : arm-linux-gcc-4.5.1Author : flinnDate : May 30, 2019basictar xvf busybox-1.22.1.tar.bz2mkdir rootfscd busybox-1.22.1/make menuconfig Busybox Se...原创 2019-06-02 13:34:18 · 383 阅读 · 0 评论 -
tiny4412 驱动(1)移植linux-4.19.27
MakefileARCH ?= armCROSS_COMPILE ?= /home/flinn/tools/6.2.1/bin/arm-none-eabi-makemake uImage LOADADDR=0x40008000 -j4设备树使用linux自带的exynos4412-tiny4412.dts,不要使用u-boot里面的设备树,否则出现各...原创 2019-06-02 13:34:06 · 337 阅读 · 0 评论 -
tiny4412 基础(七)移植command
先看效果图这个图是在裸机下跑的,移植了u-boot的command, 新的u-boot改成cli(命令行接口)使用起来非常方便:static int do_version (struct cmd_tbl_s *cmd_tbl_t, int argc, int type, char * const argv[]){ puts("version : V1.0 \r\n"); r...原创 2019-05-19 16:23:27 · 368 阅读 · 0 评论 -
tiny4412 基础(六)串口
串口对嵌入式必备的调试工具。串口的操作不外乎以下几点:1.设置对应gpio复用为uart2.设置时钟,设置波特率,数据位等基本参数3.使能对于tiny4412的串口特性,这里不赘述。对于ch0,tx/rx各由256bytes的FIFO。时钟对于clock:由上可知uart的时钟可选XusbXTI,前面说过是24M板载晶振,也可以SCLK_MPLL,由CLK_S...原创 2019-05-19 16:12:05 · 575 阅读 · 0 评论 -
tiny4412 基础(五)时钟体系(续)
在iROM里面有设置PLL:本文描述使用uart使用iROM初始化的MPLL来反过来读关键寄存器的值先看结果:-----------------------src-------------------------src_cpu : 01000001src_leftbus : 00000001src_rightbus : 00000001src_top0 :...原创 2019-05-19 16:11:26 · 583 阅读 · 0 评论 -
tiny4412 基础(四)时钟体系
时钟体系是后面裸板,u-boot等的基础,这里先简单总结一下各个模块典型值:晶振输入:XXTI 和XusbXTI, 对于tiny4412,在XusbXTI上接了24MHz晶振,通过PLL后可以产生1.4GHz的频率。PLL由如下几种:PLL分类 No. PLL Notes 1 APLL APLL mainly ...原创 2019-05-15 21:59:58 · 477 阅读 · 0 评论 -
tiny4412 基础(三)裸板程序框架
这里描述的是裸板代码不超过BL2,即14K-4的长度,对一些简单外设的使用足够了。内存分布:要使用c语言,那么必须先设置栈, 设置0x02027800,0x02027800 -0x02027400 = 1Kstart.S:.text.globl _start_start: ldr sp, =0x02027800 // 调用C函数之前必须设置栈,栈用于保存运行环...原创 2019-05-15 21:37:55 · 329 阅读 · 0 评论 -
tiny4412 基础(二)SD卡烧写裸板程序
新建目录结构:├── led_asm│ ├── led.bin│ ├── led.dis│ ├── led.elf│ ├── led.lds│ ├── led.o│ ├── led.S│ └── Makefile├── readme.md└── sd_fuse ├── bl2.bin ├── E4412_N.bl1.bin ...原创 2019-05-15 21:38:10 · 531 阅读 · 0 评论 -
tiny4412 基础(一)启动过程
主要参考《Android_Exynos4212_iROM_Secure_Booting_Guide_Ver.1.00.00.pdf》,其启动方式和4412是类似的。1.IROM CODEThis application note explains the way to build the secure BL1(1st Bootloader) and BL2(2nd Bootloader)...原创 2019-05-15 21:38:20 · 1144 阅读 · 0 评论