三星2416的一些调试记录

通过SD卡启动,擦除nand闪存
#nand scrub
#nand erase

设置ipaddr和serverip的值(PC机的IP),使它们在同一网段
#set ipaddr 192.168.0.xx
#set serverip 192.168.0.xx(PC的IP)
#save 

tftp烧写
给nand烧写uboot
#tftp c0000000 u-boot-nand.bin
#nand write c0000000 0 40000

给nand烧写好uboot后,此时我们可以把核心板装到DIN2416的板子上了,上电启动

uboot启动后
print查看环境变量
#print

设置ipaddr和serverip的值(PC机的IP),使它们在同一网段
#set ipaddr 192.168.0.xx
#set serverip 192.168.0.xx(PC的IP)
#save 


内核变大,改变内核的分区
改变uboot的变量
#setenv bootcmd 'nand read.jffs2 C0008000 40000 400000;bootm C0008000'
#save

tftp烧写内核
#tftp c0000000 zImage_128MB_W43
#nand erase 40000 400000
#nand write.jffs2 c0000000 40000 400000

tftp烧写根文件系统
#tftp c0000000 root_EM2416.yaffs2
#nand scrub 400000 3800000
#nand write.yaffs c0000000 400000 3c65040(根文件系统的大小)

以太网驱动调试
2416公版与DIN2416的以太网的外部中断引脚不一样,DIN2416的以太网的中断引脚为EINT10
路径:linux-3.4.4\arch\arm\mach-s3c24xx\mach-smdk2416.c
修改如下:
static struct resource dm9000_resources[] = {
    [0] = {
        .start      = 0x20000300,
        .end        = 0x20000307,
        .flags      = IORESOURCE_MEM,
    },
    [1] = {
        .start      = 0x20000308,
        .end        = 0x2000030f,
        .flags      = IORESOURCE_MEM,
    },
    [2] = {
        //modify by Con sir
       //.start      = IRQ_EINT(7),
        //.end        = IRQ_EINT(7),
        .start      = IRQ_EINT(10),
        .end        = IRQ_EINT(10),
        .flags      = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
    },
};

GPIO的控制驱动:
    -> Device Drivers  
          -*- GPIO Support  --->
              [*]   /sys/class/gpio/... (sysfs interface)    
        
485的测试;使用ttyASC1
测试RS485(两板AA-BB对接或者使用USB-485测试)
控制RS485的发送或接收引脚是GPB10->gpio42

在根目录下新建work文件夹,通过rz下载com文件到work目录

# echo "42" > /sys/class/gpio/export
# echo "out" > /sys/class/gpio/gpio42/direction
# echo "0" > /sys/class/gpio/gpio42/value(置低发送)

#./work/com /dev/ttySAC1  9600 8 0 1

# echo "1" > /sys/class/gpio/gpio42/value(置高接收)
#./work/com /dev/ttySAC1  9600 8 0 1

7寸电阻屏的参数支持
路径:linux-3.4.4\arch\arm\mach-s3c24xx\mach-smdk2416.c
static struct s3c_fb_pd_win smdk2416_fb_win[] = {
    [0] = {
        /* think this is the same as the smdk6410 */
            .pixclock   = 37037,
            .left_margin    = 40,
            .right_margin   = 60,
            .upper_margin   = 10,
            .lower_margin   = 10,
            .hsync_len      = 20,
            .vsync_len      = 10,
            .xres           = 800,
            .yres           = 480,
        },
        .default_bpp    = 16,
        .max_bpp    = 32,
    },
};

继电器的控制:
控制J6两个引脚的继电器的是EINT6/GPF6(gpio166)
#echo "166" > /sys/class/gpio/export
#echo "out" > /sys/class/gpio/gpio166/direction
#echo "1" > /sys/class/gpio/gpio166/value(置高闭合)
#echo "0" > /sys/class/gpio/gpio166/value(置低断开)

控制J5的3个引脚的继电器的是EINT11/GPG3(gpio195)
#echo "195" > /sys/class/gpio/export 
#echo "out" > /sys/class/gpio/gpio195/direction
#echo "1" > /sys/class/gpio/gpio195/value(J5的1和2引脚闭合)
#echo "0" > /sys/class/gpio/gpio195/value(J5的2和3引脚闭合)

GPIO(EINT12-EINT14)控制:
把我们自己的驱动加载进内核
 Device Drivers  ---> 
     Character devices  ---> 
           [*] 2416_eint12_eint14  
           
#mknod /dev/2416_EINT12_EINT14 c 232 0
#./Test_EINT12_EINT14
            
用镊子短接INT12和GND,EINT12被拉低,打印EINT12 is low level信息
用镊子短接INT13和GND,EINT13被拉低,打印EINT13 is low level信息
用镊子短接INT14和GND,EINT14被拉低,打印EINT14 is low level信息

RTC驱动调试:
(1) arch\arm\mach-s3c24xx\mach-smdk2416.c 中添加:
    设备名称:(smdk2416_devices中添加)
        &s3c_device_rtc,    

(2) 配置内核(内核默认已经配置上,所以用之前的移植I2C的配置文件):
     Device Drivers  ---> 
        [*] Real Time Clock  --->
            [*]   Set system time from RTC on startup and resume
            (rtc0)  RTC used to set the system time
            [*]   /sys/class/rtc/rtcN (sysfs)
            [*]   /proc/driver/rtc (procfs for rtc0) 
            [*]   /dev/rtcN (character devices)
            <*>   Samsung S3C series SoC RTC
            
蜂鸣器驱动调试:
路径:linux-3.4.4\input\misc\pwm-beeper.c
使系统加载蜂鸣器驱动听到滴的一声响(有源蜂鸣器)
static int __devinit pwm_beeper_probe(struct platform_device *pdev)
{
    unsigned long pwm_id = (unsigned long)pdev->dev.platform_data;
    struct pwm_beeper *beeper;
    int error;
    //add by Con sir
    s3c2410_gpio_cfgpin(S3C2410_GPB(0), S3C2410_GPIO_OUTPUT);
    s3c2410_gpio_setpin(S3C2410_GPB(0), 1);
    mdelay(1000);
    s3c2410_gpio_setpin(S3C2410_GPB(0), 0);
    ....
}

配置和编译内核        
#cp DIN2416 .config(这个是以前已经配置好的config文件)
#make -j8


烧写好文件系统出现:can't open /dev/s3c2410_serial0: No such file or director 
解决方法:把文件系统中的/etc/inittab文件的的那行内容
s3c2410_serial0::askfirst:-/bin/sh
改为
console::askfirst:-/bin/sh

再次烧根文件系统触控没反应的解决方法:
#vi /bin/qtopia 
export set TSLIB_TSDEVICE=/dev/event1 
更改为
export set TSLIB_TSDEVICE=/dev/event0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值