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

转载于:https://www.cnblogs.com/princepeng/p/11476893.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值