
tiny4412
有崖
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
tiny4412 驱动 (19)设备树之lcd驱动(基于DRM)
关于DRM,参考https://blog.youkuaiyun.com/hexiaolong2009/category_9281458.html前面基于传统framebuffer的驱动,作为模块加载时没问题, 和内核一起编译后,内核启动到文件系统时LCD不再显示。echo hello > /dev/tty1也不会有任何反应。目前得到的信息, 和内核一起编译后LCD控制寄存器的值全部变成了0;原因...原创 2020-04-12 17:20:06 · 2358 阅读 · 6 评论 -
tiny4412 驱动 (18)lcd和串口同时输出启动日志
原来的bootargssetenv bootargs "noinitrd init=/linuxrc console=ttySAC0,115200 root=/dev/nfs rw nfsroot=192.168.1.100:/home/flinn/tmp/rootfs ip=192.168.1.123:192.168.1.100:192.168.1.1:255.255.255.0::eth...原创 2019-11-16 22:26:10 · 271 阅读 · 0 评论 -
linux下NFS环境搭建及nfs文件系统挂载
安装(ubuntu)sudo apt install nfs-kernel-serverexportsudo vim /etc/exports# /etc/exports: the access control list for filesystems which may be exported# to NFS clients. See ex...原创 2019-11-13 19:12:31 · 628 阅读 · 0 评论 -
tiny4412 驱动 (18)clk驱动框架
关于clk common framework,在drivers/clk目录下drivers/clk/clk-exynos4.cstatic void __init exynos4412_clk_init(struct device_node *np){ exynos4_clk_init(np, EXYNOS4X12);}CLK_OF_DECLARE(exynos4412_clk,...原创 2019-11-11 22:33:39 · 340 阅读 · 0 评论 -
tiny4412 驱动 (17)RTC驱动
设备树vim arch/arm/boot/dts/exynos4.dtsi rtc: rtc@10070000 { compatible = "samsung,s3c6410-rtc"; reg = <0x10070000 0x100>; interrupt-pare...原创 2019-11-11 21:02:36 · 531 阅读 · 0 评论 -
tiny4412 debugfs
在文件系统里面添加debugfsvim etc/fstab#device mount-point type options dump fsck orderproc /proc proc defaults 0 0tmpfs /...原创 2019-11-08 21:48:42 · 194 阅读 · 0 评论 -
tiny4412 Layout and deploy
tiny4412 Layout/* * SD MMC layout: * +------------------------------------------------------------------------------------------+ * | ...原创 2019-11-08 21:31:10 · 203 阅读 · 0 评论 -
tiny4412 驱动 (16)aplay问题
sound设备:[root@tiny4412 ]# ls /dev/snd/controlC0 pcmC0D0p timer问题[root@tiny4412 ]# aplay music.wavPlaying WAVE 'music.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Monoaplay: pcm_wr...原创 2019-11-08 21:09:47 · 1679 阅读 · 0 评论 -
tiny4412 驱动 (15)解决DMA的问题
进入文件系统后,输入ls会出现dma-pl330 12680000.pdma: Reset Channel-1 CS-20000f FTC-20000而且不会显示全。这个解决参考https://blog.youkuaiyun.com/qq_25370227/article/details/84891632原因为了强制执行对非安全世界外设和地址访问的限制,Exynos4412配备了“Tr...原创 2019-11-08 21:07:28 · 645 阅读 · 1 评论 -
tiny4412 驱动 (14)设备树之ADC
设备树 adc@126C0000 { compatible = "tiny4412,adc"; reg = <0x126C0000 0x20>; clocks = <&clock CLK_TSADC>; clock-names = ...原创 2019-11-06 21:43:08 · 512 阅读 · 0 评论 -
移植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 · 665 阅读 · 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 · 280 阅读 · 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 · 1154 阅读 · 0 评论 -
tiny4412 驱动 (10)设备树之beep
重要参考文档:1.Documentation/devicetree/bindings/pinctrl/samsung-pinctrl.txt2.Documentation/devicetree/bindings/gpio/gpio-samsung.txt3.Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt从原...原创 2019-07-12 21:26:49 · 417 阅读 · 0 评论 -
tiny4412 驱动 (11)设备树之hello
设备树HelloWorld { compatible = "tiny4412, hello_world"; status = "okay"; test { label = "test"; }; };...原创 2019-07-16 20:35:48 · 363 阅读 · 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 · 220 阅读 · 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 · 262 阅读 · 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 · 628 阅读 · 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 · 404 阅读 · 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 · 1218 阅读 · 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 · 583 阅读 · 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 · 368 阅读 · 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 · 511 阅读 · 0 评论 -
emmc 分析
基于tiny4412对于exynos4412来说,支持4个SD/MMC首先gpio里面的描述GPK0, GPK1, GPK2, GPK3: 28 in/out ports-4xMMC (4-bit MMC), and/ or 2xMMC (8-bit MMC) ), and/ or GPSdebugging I/F其中SD卡是4-bit的,eMMC是8-bit的,另外一个mmc...原创 2019-06-05 22:56:22 · 2320 阅读 · 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 · 368 阅读 · 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 · 415 阅读 · 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 · 913 阅读 · 0 评论 -
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 · 834 阅读 · 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 · 488 阅读 · 1 评论 -
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 · 205 阅读 · 0 评论 -
tiny4412 驱动 (6)hello
写这个驱动的目的是作为后面字符设备的模板,这里采用最原始的方法,其实写字符设备有很多框架可以用,例如可以使用register_chrdev_region, 也可以使用platform,最简单的还可以使用misc。这里采用register_chrdev_region的方式,其他两种方式这里不赘述。先看MakefileTARGET := helloobj-m += $(TARGET...原创 2019-07-10 22:45:06 · 253 阅读 · 0 评论 -
tiny4412 基础(五)时钟体系(续)
在iROM里面有设置PLL:本文描述使用uart使用iROM初始化的MPLL来反过来读关键寄存器的值先看结果:-----------------------src-------------------------src_cpu : 01000001src_leftbus : 00000001src_rightbus : 00000001src_top0 :...原创 2019-05-19 16:11:26 · 612 阅读 · 0 评论