JZ2440裸机代码梳理-基于新一期

001_led_on_008_003			//一个简单的点灯汇编+一个基础编译makefile,可查看反汇编文件
002_led2_on_008_004			//点亮另一个LED
003_led_c_008_007			//汇编初始化栈,调用C点灯
004_led_params_008_009		//汇编传参数到C函数,延时点灯
005_leds_008_010	
	001th					//汇编关看门狗,判断nor/nand启动来设置sp栈
	002th					//加入寄存器宏定义文件(s3c2440_soc.h)
006_key_led_008_010			//按键控制点灯
007_clk_010_002				//流水灯,时钟设置分频(异步模式)
008_gcc_pointer_Makefile_009
	001_gcc_options			//c打印hello world和数的加减,汇编不知道干啥
	002_pointer			
		1th					//变量存在内存中,赋值,打印变量,使用指针(取指+移动指针)
		2th					//数组与指针的使用
	003_Makefile
    	001_test_app_009_005		//makefile编译两个文件,a调用b的函数
    	002_syntax_009_006_007
        	001_patten_009_006		//编译三个文件,$^;%.o : %.c;$@ $<;
        	002_phony_009_006		//加入clean功能;.PHONY: clean	
        	003_variable_009_006	//变量赋值及修改语法
        	004_function_009_007	//比较复杂的语法
    	003_example_009_008			//加载引用子目录的头文件	
009_uart_011
	001_uart_011_002				//uart初始化,putchar/getchar/puts
	002_printf_test_011_003			//上位机程序展现printf的各种功能(64位和32位)
	003_push_test_011_003_004
		1th							//push_test("abcd",123,(struct)per,'c',2.79); 
		2th							//改进了1th的一些问题
		3th							//加入了stdarg.h(可变参数函数是stdarg.h内容典型)
		4th							//去掉stdarg.h,自己定义了stdarg.h的函数功能
		push_test.c					//与4th相同
	004_struct_test_011_003			//结构体对齐并printf
	005_my_printf_011_005			//上位机的自己写my_printf
	006_uart_printf_011_005			//将my_printf嵌入到uart里,lib1funcs.S文件起到什么作用还不清楚
	lib_printf_string				//关于printf的lib库
010_nor_access_cycle_012_003		//程序放在nor里面,串口控制nor的tacc,观察led闪烁快慢
011_sdram_012_004					//配置SDram并测试读写
012_relocate_013
	001_013_001						//体现nor里面的变量不会修改
	002_013_002						//修改makefile让代码跳到0x30000000,不可行
	003_013_003						//引入lds文件,在sdram初始化后重定位data段(改变地址)
	004_013_002						//lds定义data地址,.S中引用后cpy
	005_013_003						//跟004没太大区别
	006_013_003						//lds定义bss地址,.s中引用后clean
	007_013_004						//加快速度,一次搬运4bit(应该)
	008_013_005						//重定位整个程序,SDram初始化程序用位置无关码
	009_013_006						//.S参数读入的lds参数传入c函数中
	010_013_006						//c函数直接读取lds里的参数,不用经过.S传入
013_thumb_014_003					//从ARM State切换到Thumb State
014_und_exception_014_004
	001								//定义未定义指令中断
	002								//在前面的基础上改进,中断后加入.align 4
015_swi_exception_014_005
	001								//定义swi中断
	002								//在前面的基础上改进
016_eint_014_006_007
	001_014_006						//搭建按键程序的框架
	002_014_007						//完善按键功能
017_timer_014_008
	001								//定时器中断程序
	002								//改善中断处理函数,加入注册中断函数
018_nor_flash_015_002_003
	001_qry_015_002					//搭建nor_test基本框架,进入cfi模式,读厂家ID
	002_size_015_002				//打印容量
	003_scan_015_002				//打印各个扇区的起始地址
	004_read_015_003				//读取nor的数据
	005_all_ok_015_003				//擦除、写入nor的数据
019_nand_flash_016
	001_chip_id_016_002				//搭建nand基本框架,nand_init
	002_chip_id_016_003				//读取芯片ID
	003_read_data_016_004			//读取nand数据
	004_erase_write_016_005			//擦除、写入nand;读取函数增加读一组数据并显示
	lib_nand						//读nand的函数,判断坏点
020_lcd_017
	001_nand_nor_boot				//判断nand或nor启动并代码重定位的函数
	002_struct_017_004				//建立LCD显示的基本结构(面向对象编程)
	003_lcd_controller_017_005		//s3c2440_lcd_controller.c,设置lcd控制器
	004_lcd_params_017_006			//lcd4.3.c设置参数;lcd.c管理lcd4.3,初始化、注册、选择lcd屏;lcd_controller.c管理s3c2440_lcd_controller,通过指针函数初始化对于的控制器;
	005_simple_test_bad_017_007		//简单测试lcd,bad
	006_simple_test_017_007			//简单测试lcd,ok
	007_dot_line_circle_017_008		//画线和画圆,framebuffer.c做了32bpp到16bpp的转化
	008_font_017_009				//输出文字,此处调用linux内核的字体
	009_div_017_010					//添加除法计算功能
	010_palette_017_011				//添加调色板功能
021_adc_touchscreen_018
	001_adc_018_002								//初始化adc,读取ad值并串口输出
	002_touchscreen_018_005						//触摸屏中断显示是否触摸
	003_touchscreen_get_data_018_006			//触摸屏中断后,进入测量模式,等ADC转换完成后打印adc数据
	004_improve_timer_018_007					//改进了timer.c程序,led.c里注册led_timer_irq
	005_touchscreen_improve_with_timer_018_008	//ADC转换中断时启动定时器以再次读取数据
	006_touchscreen_calibrate_un_tested_018_010	//触摸屏校准未测试程序,有bug
	007_touchscreen_calibrate_ok_018_011		//触摸屏校准ok程序,改善触摸屏采集方式(多次取平均,定时器优化等)
	008_touchscreen_perfect_018_012				//完善修改touchscreen.c程序
022_i2c_019
	001th_framework_019_003						//建立I2C程序的基本框架,控制器和设备
	002th_i2c_controller_framework_019_004		//S3C2440的I2C控制器的驱动编写
	003th_i2c_controller_intertupt_019_005		//I2C中断函数的编写
	004th_at24cxx_019_006						//at24cxx的读写函数的编写
	005th_i2c_ok_019_007						//测试完善i2c控制器的驱动
023_spi_020
	00th_来自老1期视频的原始代码_未支持SPI
	01th_spi_i2c_adc_jz2440_oled_020_002
	02th_spi_i2c_adc_jz2440_read_id_020_003
	03th_spi_i2c_adc_jz2440_flash_020_004
	04th_spi_i2c_adc_jz2440_ok_020_005
	05th_spi_i2c_adc_jz2440_spi_controller_020_006
	06th_spi_i2c_adc_mini2440_tq2440_gpio_020_007
	07th_spi_i2c_adc_mini2440_tq2440_spi_controller_020_007
024_mmu_cache_021
	001_icache_021_002
	002_mmu_021_004
025_sensors_022
	001_photoresistor_022_001
	002_hrtimer_udelay_022_002
	003_dht11_022_003
	004_ds18b20_022_005
	005_system_circle_buffer_022_007
	006_irda_raw_data_022_008
	007_irda_nec_ok_022_009
posted @ 2019-07-06 17:08  princepeng  阅读(319)  评论(0编辑  收藏  举报