DM368开发 — 文件烧写[通俗易懂]

DM368开发 — 文件烧写[通俗易懂]参看:DM36x的UBL分析以及串口启动UBL是RBL引导启动的一段小程序,主要负责初始化时钟,串口,NAND,DDR2等,然后把uboot,kernel,rootfs复制到DDR2上并引导uboot。为什么UBL跟串口启动一起讲,那是因为这两个关系很密切,很多代码是共用的,而且代码都放在同一个目录下,所以就合起来一起讲了。一、UBLubl的代码放在dvsdk目录下

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

参看:UG: DaVinci PSP Installation on DM36x EVM

参看:DM368 NAND Flash启动揭秘


参看:DM36x的UBL分析以及串口启动

UBL 是 RBL 引导启动的一段小程序,主要负责初始化时钟,串口,NAND,DDR2 等,然后把 uboot, kernel, rootfs 复制到 DDR2 上并引导 uboot。为什么 UBL 跟串口启动一起讲,那是因为这两个关系很密切,很多代码是共用的,而且代码都放在同一个目录下,所以就合起来一起讲了。

一、UBL

ubl 的代码放在 dvsdk 目录下的/psp/flash-utils 文件夹。 flash-utils 目录里有很多基于不同平台的文件夹,但对我 DM36x 来说,只需要 Common 和 DM36x 两个文件夹就可以了,其他的都可以删掉,而且删掉后清爽多了,呵呵。UBL 的源码分析网上已经很多人介绍了,我移植的时候参考了一篇很好的文章:http://zjbintsystem.blog.51cto.com/964211/392000

1. 各个 makefile 的修改

修改各个目录下的 makefile,主要是屏蔽掉不编译的选项。

2. /psp/flash-utils/DM36x/Common/src/devices.c

这个文件很重要,里面包括了所有的 CPU 内部接口的初始化,包括时钟,DDR2,串口……。要是换了 DDR2 那就得在这修改 DDR 的配置。因为这个文件没有定义 CPU 的主频和 DDR2 频率的配置,使用了默认的//Arm 297 DDR 243 MHZ,所以我再这个文件的头部定义了一个宏#define ARM432_DDR340_OSC24

3. /psp/flash-utils/DM36x/Common/src/devices.c

由 于 DEVICE_DDR2Init() 函 数 调 用 的 DDR_Get_Val() 编 译 时 报 错 , 这 个 是 因 为DDR_Get_Val()函数里面的除法和求余函数跟编译器不匹配造成的。改发就是把算好的值代替掉 DDR_Get_Val()。

4./psp/flash-utils/DM36x/GNU/ubl/ubl.lds

这个链接文件里面有内存的起始地址和大小,NAND 的起始地址和大小的配置,这个根据板子的实际情况修改好。
完成上面的修改后就可以 make 了,生成的 ubl_DM36x_nand.bin 就是我们所要的 NAND 启动的 UBL 了。

二。串口启动

串口启动相关的代码在/psp/flash-utils/DM36x/GNU 下面的 sfh,sft,slh,slt。其中 sfh,sft,是一对,sfh(Serial Flasher host)是 PC 端的下载工具,sft(Serial Flasher target)是运行在 ARM 上的程序。编译 sfh 需要 sfl 文件,从 UART 启动时,RBL 先跟 sfh 通讯把 sft 下载到 IRAM 中运行,然后 sft 通过跟 sfh通讯,在 PC 端用命令行的方式把要下载的代码烧写到 NAND 上去。下面是使用的介绍:

Serial Flasher Usage
====================
More info can be found by running the utility with the '-h' option.
sfh_DM36x.exe -h1) Erase the NAND flash
sfh_DM36x.exe -nanderase
2) Flash the NAND with a UBL and u-boot image
sfh_DM36x.exe -nandflash <UBL binary file> <binary application file>
The entry point of the UBL is assumed to be 0x0100, but this can be changed by using the
-UBLStartAddr option. The entry point and load address of the application default to
0x81080000 (u-boot defaults). To change these values, use the -APPStartAddr and
-APPLoadAddr option.
NOTE: Currently, YOU MUST USE THE UBL BINARY CREATED BY THE UBL PROJECT
IN THIS PACKAGE. If you use any other UBL binary, the boot procedure will most likely fail.

同样,slh 和 slt 也是一样的道理,只是他们是把代码下载到内部 RAM 或者 DDR2 上面去。
下面是使用介绍:

Serial Loader Usage
===================
More info can be found by running the utility with the '-h' option.
slh_DM36x.exe -h
1) Load a UBL or small UBL-like application to the DM36x IRAM
slh_DM36x.exe -load2IRAM <UBL binary file>
2) Load a larger image compiled to run at start of DDR space
slh_DM36x.exe -load2DDR <binary application file>
For the load to IRAM option, the file size is limited to 14KB, and the application assumes an entry
point address of 0x0100 (the smallest allowed). The entry point address canbe modified by using
the -startAddr command line option, with the address specified in hex.
For the load to DDR option, the file size is limited to 32MB, and the application assumes a load
address and entry point address of 0x80000000.
The entry point address can be altered by using the -startAddr command line option, as with the
-load2IRAM case. The load address can be altered from the default by using the -loadAddr
command line option

sfh_DM365x.exe 为 DVSDK 自带,所在位置如下图:

DM368开发 -- 文件烧写[通俗易懂]

由于使用 sfh_DM36x.exe 需要安装.Net Framework 2.0 或更高的版本,所以先安装.net 固件。

三、烧写 UBL 和 UBOOT

1.PC 端打开命令行工具, 把 sfh_DM36x.exe 和要烧写的 UBL, uboot 文件放在同一个目录下,
编写脚本 download.bat 然后使用命令
sfh_DM36x -nandflash ubl_DM36x_nand.bin u-boot.bin -p “COM1”
如 果 需 要 指 定 UBOOT 的 装 在 地 址 或 入 口 地 址 的 话 需 要 加 上 -APPStartAddr 和 -APPLoadAddr 指定。

DM368开发 -- 文件烧写[通俗易懂]

PS: 如上图所示插上短路帽则将板子设为串口启动,BTSET[2:0]=011 即NAND Boot mode

DM368开发 -- 文件烧写[通俗易懂]

烧写过程:
1、368 设备主板插上短路帽,超级终端连接设备,看到打印。

ps:此时 BTSET[2:0]=011 为串口模式

DM368开发 -- 文件烧写[通俗易懂]

此时断开超级终端
2.烧写文件目录找到 脚本,把里面的串口改为本地串口,运行该脚本,直到出现以下信息。

DM368开发 -- 文件烧写[通俗易懂]

关闭该运行窗口,再次运行该脚本,打开运行窗口,出现以下信息

DM368开发 -- 文件烧写[通俗易懂]

加载到 100%会自动关闭运行窗口
3.本地打开 tftp server 目录指向烧写文件目录
C:\Users\zslf\Desktop\shaoxie\sx\DM368\sx\u-boot 和 ubl 及烧写工具
4.打开虚拟机 ip 为 192.168.2.78(虚拟机要有文件系统)
5.关闭设备,拔掉短路帽,开启设备,会自动加载内核及文件系统,如下图
ps:此时 BTSET[2:0]=000 为 nand 启动模式

DM368开发 -- 文件烧写[通俗易懂]

直到出现进入 uboot 界面如下图

DM368开发 -- 文件烧写[通俗易懂]

6.在 uboot 下修改相关配置参数,依次设置以下指令,即完成板子烧写。

setenv bootargs dm365_imp.oper_mode=0 mem=48M console=ttyS0,115200n8 noinitrd rw
ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs video=davincifb:osd0=720x480x16,4050K ;setenv
bootcmd 'nand read 0x80700000 0x400000 0x400000;bootm 0x80700000';
saveenv
reset

四、烧写说明

DM368用于小型化设备作为视频监控设备,本文主要说明的是怎样烧写DM368.

DM368采用的是NandFlash作为存储芯片,采用的是ubi文件系统.
DM368烧写分为三个步骤:通过串口烧写UBL和U-boot;u-boot下烧写uImage,主机下烧写ubi文件系统,修改启动参数;制作SD卡;

烧写UBL和U-boot 

1.将UBL、u-boot.bin和download.bat批处理程序放在一个文件夹下,如下图所示;

DM368开发 -- 文件烧写[通俗易懂]

2.修改dwonload.bat中的串口设置

DM368开发 -- 文件烧写[通俗易懂]
COM22修改为主机和板子相连的串口号(通过控制面板可以确认);

3.设置板子为串口启动,并加电;

串口启动时用跳线帽短接指定的两个电阻;

4.串口烧写

分两次双击download.bat(必须执行两次双击,每次执行都必须执行完毕)。完成后即烧写完了UBL和U-boot,断电后取下两个跳线帽;
以下宏定义指令文件所在位置:
/home/zslf/dm368/dvsdk_dm368_4_02_00_06/psp/u-boot-2010.12/include/configs# 
vi davinci_dm365evm.h
在编译uboot的时候 设置 serverip、bootargs 等。

烧写内核和文件系统

第二部分烧写内核和文件系统实际上是自动化烧写完毕的。在这里分析下怎样实现的,主要是通过u-boot中bootcmd参数实现自动烧写uImage,nfs文件系统中软链接实现烧写ubi文件系统;

#define CONFIG_BOOTCOMMAND “tftp 0x80700000 uImage; nand erase 0x400000 0x400000; nand write 0x80700000 0x400000 0x400000;set bootcmd ‘ setenv bootcmd ‘ ‘;saveenv;nand read 0x80700000 0x400000 0x400000;bootm 0x80700000 ‘;set serverip 192.168.2.76;set ipaddr 192.168.2.194;saveenv;tftp 0x80700000 uImage;reset”

上述设置对应u-boot状态下bootcmd参数,含义是第一次上电后通过进入u-boot状态下通过tftp下载内核uIamge到内存0x80700000;修改再次启动的bootcmd参数;并将内核烧写到NandFlash中; ;修改再次启动的bootcmd参数;设置服务器ip(即主机IP),板子的ip,再进行复位;
#define CONFIG_BOOTARGS \
“mem=60M console=ttyS0,115200n8 noinitrd rw eth=03:0E:EF:F2:FF:85 ip=192.168.2.194::192.168.2.1 nfsroot=192.168.2.78:/home/zslf/dm368/rootfs,nolock video=davincifb:osd0=720x480x16,4050K dm365_imp.oper_mode=0”

上述设置bootargs,实现nfs挂载,从而实现第一次进入nfs文件系统中后可以烧写ubi文件系统;
#define CONFIG_IPADDR 192.168.2.194
#define CONFIG_SERVERIP 192.168.2.76
#define CONFIG_GATEWAYIP 192.168.2.1
#define CONFIG_ETHADDR 0A:26:C4:9F:7D:19

设置服务ip,开发板地址,网关,mac地址;

在nfs文件系统的/etc/rc5.d/下有一个链接脚本,实现ubi文件系统的自动化烧写,如下图所示:
DM368开发 -- 文件烧写[通俗易懂]
可以看出是一个软链接,真正的脚本在/zslf/write.sh
write.sh中 的内容是:
DM368开发 -- 文件烧写[通俗易懂]
 rootfs-php为ubifs文件系统,需要放在nfs根根文件系统的zslf目录下;
上述脚本即为烧写ubi文件系统,烧写完毕后重启系统;

有上面的原理可以得出第二阶段的烧写步骤:
1.配置tftpd服务器,准备uImage内核,如下图所示:
DM368开发 -- 文件烧写[通俗易懂]
例如:设置tftpd服务器的服务目录为D:\tftp32pd_base\DM368
将内核放在服务目录下,如下图所示:

DM368开发 -- 文件烧写[通俗易懂]
              
2.配置虚拟机中nfs根文件系统和ubifs文件系统
主要是在/etc/export中设置,如下图所示
DM368开发 -- 文件烧写[通俗易懂]

上述可知/home/zslf/dm368/rootfs为nfs根文件系统;ubi文件系统rootfs-php。

放在/home/zslf/dm368/rootfs/zslf/下
3.(取下短路帽,从Nand启动),上电上电后,不要执行任何操作,系统自动烧写内核uImage和ubi文件系统,烧写完后,系统进行软复位,自动进入U-boot状态;
4.修改bootargs参数
修改bootargs参数,文件系统由nfs启动改为ubi文件系统启动;
修改如下:
setenv bootargs dm365_imp.oper_mode=0 mem=48M console=ttyS0,115200n8 noinitrd rw ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs video=davincifb:osd0=720x480x16,4050K ;setenv bootcmd ‘nand read 0x80700000 0x400000 0x400000;bootm 0x80700000’;
setenv bootcmd ‘nand read 0x80700000 0x400000 0x400000;bootm 0x80700000’
saveenv
reset;

五、制作SD卡

1.利用sd-format.sh脚本格式化sd卡,建立基本的SD卡;
2.拷贝/zslf文件系统;
至此DM368烧写完毕;


sd-format.sh 格式化脚本内容:

#!/bin/sh
e=""
m=""
n="xxxx"
while [ 1 ]
do
n="xxxx"
e=`fdisk -l | grep /dev/sdb1 | awk '{print $1}'`
if [ -z "$e" ];then
echo "####no sd ####"
else
echo "####have sd !####"
m=`df | grep media | awk '{print $1}'`
if [ -n "$m" ];then
umount $m
fi
#umount $e
echo "####start to format sd with ext3 filesystem!####"
mkfs.ext3 "$e"
echo "####end format sd!####"
#echo "copy zslf_app_dir"
mount $e /media/mmcblk0p1
#cp -a zslf /media/mmcblk0p1/
mkdir /media/mmcblk0p1/bak
mkdir /media/mmcblk0p1/video
umount $e
echo "##############zslf sd fomat and copy filesystem!
##########################"
echo "please remove sd!"
fi
sleep 5
if [ -n "$e" ];then
while [ -n "$n" ]
do
n=`fdisk -l | grep /dev/sdb1 | awk '{print $1}'`
sleep 5
done
fi
done

六、其他烧写方式

七、启动信息

U-Boot 2010.12-rc2 (May 27 2014 - 16:50:48)

Cores: ARM 297 MHz
DDR:   243 MHz
DRAM:  128 MiB
NAND:  512 MiB
Bad block table found at page 262080, version 0x01
Bad block table found at page 262016, version 0x01
Net:   Ethernet PHY: LXT972 @ 0x01
DaVinci-EMAC
Hit any key to stop autoboot:  2  1  0 

NAND read: device 0 offset 0x400000, size 0x400000
 4194304 bytes read: OK
## Booting kernel from Legacy Image at 80700000 ...
   Image Name:   Linux-2.6.32.17-davinci1
   Created:      2015-11-23   9:14:53 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2243956 Bytes = 2.1 MiB
   Load Address: 80008000
   Entry Point:  80008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux.................................................................................................................................................. done, booting the kernel.
Linux version 2.6.32.17-davinci1 (root@zslf-desktop) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-203) ) #117 PREEMPT Mon Nov 23 17:14:48 CST 2015
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
CPU: VIVT data cache, VIVT instruction cache
Machine: DaVinci DM36x EVM
Memory policy: ECC disabled, Data cache writeback
DaVinci dm36x_rev1.2 variant 0x8
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 12192
Kernel command line: dm365_imp.oper_mode=0 mem=48M console=ttyS0,115200n8 noinitrd rw ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs video=davincifb:osd0=720x480x16,4050K
PID hash table entries: 256 (order: -2, 1024 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 48MB = 48MB total
Memory: 43900KB available (4216K code, 393K data, 148K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
NR_IRQS:245
Calibrating delay loop... 147.86 BogoMIPS (lpj=739328)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
DaVinci: 8 gpio irqs
NET: Registered protocol family 16
davinci_serial_init:97: failed to get UART2 clock
EVM: HD imager video input
bio: create slab <bio-0> at 0
DM365 IPIPE initialized in Continuous mode
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pca9543a_probe
vpss vpss: dm365_vpss vpss probed
vpss vpss: dm365_vpss vpss probe success
dm365_afew_hw_init
lconfig->line_length is 0.
ch0 default output "COMPOSITE", mode "NTSC"
###### vpbe_encoder_init ######
###### vid_enc_register_encoder ######
###### mgr->num_encoders is 0 ######
###### **ch_id is 0 ######
###### mode_info.name is NTSC ######
###### vpbe_encoder_initialize ######
###### output is COMPOSITE,outindex is 0 ######
###### vpbe_encoder_setoutput ######
###### dm365 = 1 ######
###### mode_info->std is 1 ######
###### mode is NTSC ######
###### 22VPBE Encoder initialized ######
###### vpbe_encoder_setoutput ######
###### dm365 = 1 ######
###### mode_info->std is 1 ######
###### mode is NTSC ######
###### dm365 = 1 ######
###### mode_info->std is 1 ######
###### mode is NTSC ######
###### 33encoder->mode_ops->setmode: error is 0 ######
###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######
VPBE Encoder Initialized
###### 11VPBE Encoder Initialized ######
Switching to clocksource timer0_1
musb_hdrc: version 6.0, cppi-dma, host, debug=0
musb_hdrc: USB Host mode controller at fec64000 using DMA, IRQ 12
musb_hdrc musb_hdrc: MUSB HDRC host driver
musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: MUSB HDRC host driver
usb usb1: Manufacturer: Linux 2.6.32.17-davinci1 musb-hcd
usb usb1: SerialNumber: musb_hdrc
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
msgmni has been set to 85
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
davincifb davincifb.0: dm_osd0_fb: 720x480x16@0,0 with framebuffer size 4050KB
davincifb davincifb.0: dm_vid0_fb: 0x0x16@0,0 with framebuffer size 1020KB
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
davincifb davincifb.0: dm_osd1_fb: 720x480x4@0,0 with framebuffer size 675KB
davincifb davincifb.0: dm_vid1_fb: 0x0x16@0,0 with framebuffer size 1020KB
DM365 IPIPEIF probed
imp serializer initialized
davinci_previewer initialized
davinci_resizer initialized
davinci gpio led module init ....... 
register davinci gpio module is ok ....... 
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x1c20000 (irq = 40) is a 16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0x1d06000 (irq = 41) is a 16550A
brd: module loaded
NAND device: Manufacturer ID: 0xec, Chip ID: 0xdc (Samsung NAND 512MiB 3,3V 8-bit)
nand_bbt: ECC error while reading bad block table
Creating 5 MTD partitions on "davinci_nand.0":
0x000000000000-0x0000003c0000 : "bootloader"
0x0000003c0000-0x000000400000 : "params"
0x000000400000-0x000000820000 : "kernel"
0x000000820000-0x000008820000 : "filesystem"
0x000008820000-0x000020000000 : "zslf"
davinci_nand davinci_nand.0: controller rev. 2.3
UBI: attaching mtd3 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    126976 bytes
UBI: smallest flash I/O unit:    2048
UBI: VID header offset:          2048 (aligned 2048)
UBI: data offset:                4096
usb 1-1: new high speed USB device using musb_hdrc and address 2
usb 1-1: New USB device found, idVendor=12d1, idProduct=15c1
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: HUAWEI Mobile V7R11
usb 1-1: Manufacturer: Huawei Technologies Co., Ltd.
usb 1-1: SerialNumber: 0123456789ABCDEF
usb 1-1: configuration #2 chosen from 3 choices
UBI: attached mtd3 to ubi0
UBI: MTD device name:            "filesystem"
UBI: MTD device size:            128 MiB
UBI: number of good PEBs:        1024
UBI: number of bad PEBs:         0
UBI: max. allowed volumes:       128
UBI: wear-leveling threshold:    4096
UBI: number of internal volumes: 1
UBI: number of user volumes:     1
UBI: available PEBs:             5
UBI: total number of reserved PEBs: 1019
UBI: number of PEBs reserved for bad PEB handling: 10
UBI: max/mean erase counter: 2/1
UBI: image sequence number: 0
UBI: background thread "ubi_bgt0d" started, PID 354
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
PPP MPPE Compression module registered
NET: Registered protocol family 24
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>

 cdc_bind,[546]
usb0: register 'cdc_ether' at usb-musb_hdrc-1, CDC Ethernet Device, 02:1e:10:1f:00:00
usbcore: registered new interface driver cdc_ether
console [netcon0] enabled
netconsole: network logging started
Initializing USB Mass Storage driver...
usbcore: registered new interface driver usb-storage
USB Mass Storage support registered.
usbcore: registered new interface driver usbserial
USB Serial support registered for generic
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial Driver core
USB Serial support registered for GSM modem (1-port)
option 1-1:2.2: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB0
option 1-1:2.3: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB1
option 1-1:2.4: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB2
option 1-1:2.5: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB3
option 1-1:2.6: GSM modem (1-port) converter detected
usb 1-1: GSM modem (1-port) converter now attached to ttyUSB4
usbcore: registered new interface driver option
option: v0.7.2:USB Driver for GSM modems
usbcore: registered new interface driver usbtest
rtc-ds1307 1-0068: rtc core: registered ds1339 as rtc0
i2c /dev entries driver
Linux video capture interface: v2.00
ths7303 1-002c: chip found @ 0x58 (DaVinci I2C adapter)
ths7303 1-002c: ths7303 write failed
ths7303: probe of 1-002c failed with error -121
vpfe_init
vpfe-capture: vpss clock vpss_master enabled
vpfe-capture vpfe-capture: v4l2 device registered
vpfe-capture vpfe-capture: video device registered
EVM: switch to tvp5150 SD video input
tvp5150 1-005d: chip found @ 0x5d (DaVinci I2C adapter)
vpfe-capture vpfe-capture: v4l2 sub device tvp5150 registered
EVM: switch to tvp7002 HD video input
vpfe-capture vpfe-capture: v4l2 sub device ths7353 register fails
vpfe_register_ccdc_device: DM365 ISIF
DM365 ISIF is registered with vpfe.
af major#: 250, minor# 0
AF Driver initialized
aew major#: 249, minor# 0
AEW Driver initialized
###### osd_init ######
### VPBE OSD DRIVER INIT ###
Trying to register davinci display video device.
layer=c10b1400,layer->video_dev=c10b1570
Trying to register davinci display video device.
layer=c10b1800,layer->video_dev=c10b1970
davinci_init:DaVinci V4L2 Display Driver V1.0 loaded
watchdog watchdog: heartbeat 60 sec
davinci_mmc davinci_mmc.0: Using DMA, 4-bit mode
Advanced Linux Sound Architecture Driver Version 1.0.21.
No device for DAI tlv320aic3x
No device for DAI davinci-i2s
asoc: tlv320aic3x <-> davinci-i2s mapping ok
ALSA device list:
  #0: DaVinci EVM (tlv320aic3x)
TCP cubic registered
NET: Registered protocol family 17
Clocks: disable unused mmcsd1
Clocks: disable unused spi0
Clocks: disable unused spi1
Clocks: disable unused spi2
Clocks: disable unused spi3
Clocks: disable unused spi4
Clocks: disable unused pwm0
Clocks: disable unused pwm1
Clocks: disable unused pwm2
Clocks: disable unused pwm3
Clocks: disable unused timer1
Clocks: disable unused timer3
Clocks: disable unused emac
Clocks: disable unused voice_codec
Clocks: disable unused rto
Clocks: disable unused mjcp
davinci_emac_probe: using random MAC addr: b2:55:85:e9:2b:0e
emac-mii: probed
mmc0: new high speed SDHC card at address e624
rtc-ds1307 1-0068: setting system clock to 2015-11-24 11:00:54 UTC (1448362854)
mmcblk0: mmc0:e624 SU64G 59.4 GiB 
 mmcblk0: p1
UBIFS: mounted UBI device 0, volume 0, name "rootfs"
UBIFS: file system size:   126341120 bytes (123380 KiB, 120 MiB, 995 LEBs)
UBIFS: journal size:       6348800 bytes (6200 KiB, 6 MiB, 50 LEBs)
UBIFS: media format:       w4/r0 (latest is w4/r0)
UBIFS: default compressor: lzo
UBIFS: reserved for root:  4952683 bytes (4836 KiB)
VFS: Mounted root (ubifs filesystem) on device 0:14.
Freeing init memory: 148K

INIT: version 2.86 booting
Please wait: booting...
Error Cannot open /dev/tty0: No such device or address
Starting udev
udev: starting version 141
Root filesystem already rw, not remounting
Caching udev devnodes
Populating dev cacheFAT: bogus number of reserved sectors
VFS: Can't find a valid FAT filesystem on dev mmcblk0.
mv: cannot rename '/tmp/devices': No such file or directory
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
kjournald starting.  Commit interval 5 seconds
EXT3 FS on mmcblk0p1, internal journal
EXT3-fs: mounted filesystem with writeback data mode.
ALSA: Restoring mixer settings...
Configuring network interfaces... eth0: attached PHY driver [LXT971] (mii_bus:phy_addr=1:01, id=1378e2)
done.
Setting up IP spoofing protection: rp_filter.

INIT: Entering runlevel: 5
Starting system message bus: dbus.
Starting telnet daemon.
Starting syslogd/klogd: done
CMEMK module: built on Oct 26 2015 at 22:19:29
  Reference Linux version 2.6.32
  File /home/zslf/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02_bak/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.c
allocated heap buffer 0xc7000000 of size 0x4400000
heap fallback enabled - will try heap if pool buffer is not available
CMEM Range Overlaps Kernel Physical - allowing overlap
CMEM phys_start (0x1000) overlaps kernel (0x80000000 -> 0x83000000)
cmemk initialized
IRQK module: built on Oct 26 2015 at 22:17:36
  Reference Linux version 2.6.32
  File /home/zslf/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02_bak/packages/ti/sdo/linuxutils/irq/src/module/irqk.c
irqk initialized
EDMAK module: built on Oct 26 2015 at 22:16:49
  Reference Linux version 2.6.32
  File /home/zslf/dm368/dvsdk_dm368_4_02_00_06/linuxutils_2_26_01_02_bak/packages/ti/sdo/linuxutils/edma/src/module/edmak.c
/zslf/appZSLF.sh: line 9: ppp_config_copy: not found
start copy th config file from zslf/config to /etc/ppp/peers.
cp: cannot stat '/zslf/config/ppp-off': No such file or directory
cp: cannot stat '/zslf/config/ppp0_on_state.txt': No such file or directory
############## ZSLF  ##################
start copy the config file from zslf to thttpd/www.
/zslf/appZSLF.sh: line 17: ppp_config_copy: not found
Create a shared memory segment 32769.
24 Nov 11:01:09 ntpdate[993]: no servers can be used, exiting
mkdir: cannot create directory '/media/mmcblk0p1/bak': File exists
## davinci_pio_led:ioctl:out: GPIO-81=1 now.ret= 0 ## 
setrlimit ok
FD_SETSIZE= 1024
### Serial_ttyUSB0_Init ###
### Complete serial_open ###
### Complete serial_config ###
### Complete fcntl ###
### Serial_ttyUSB0_Init End ###
###  MU909_SetCFUN ###
start MU909_SetCFUN 
##strATCommand is AT+CFUN=1
.
AT+CFUN=1


OK


##strATCommand is AT+CMEE=2
.
AT+CMEE=2


OK


##strATCommand is AT+CPIN?
.
AT+CPIN?


+CPIN: READY



OK


##strATCommand is AT+CEREG=2
.
AT+CEREG=2


OK


##strATCommand is AT^HCSQ?
.
AT^HCSQ?


^HCSQ: "LTE",52,49,166,34



OK


##strATCommand is AT+COPS?
.
AT+COPS?


+COPS: 0,0,"CMCC",7



OK


##strATCommand is AT^SYSCFGEX="03",3fffffff,1,2,7fffffffffffffff,,
.
AT^SYSCFGEX="03",3fffffff,1,2,7fffffffffffffff,,


OK


##strATCommand is AT^NDISDUP=1,1,"cmnet"
.
AT^NDISDUP=1,1,"cmnet"


OK



^NDISSTAT: 1,,,"IPV4"



^NDISSTAT: 1,,,"IPV6"


udhcpc (v1.13.2) started
Sending discover...
Sending select for 10.67.239.228...
Lease of 10.67.239.228 obtained, lease time 518400
adding dns 221.130.33.60
adding dns 221.130.33.52
######## encode #########
### timenow->tm_year = 115 ###

 _____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project http://arago-project.org dm368-evm ttyS0

Arago 2011.02 dm368-evm ttyS0

dm368-evm login: 24 Nov 11:01:32 ntpdate[1189]: no server suitable for synchronization found
zslf module ok...
dlsym load ok!
***after***
#### parseStreamingArgs - streaming to [124.65.158.106:22616] ####
#### parseStreamingArgs - streaming to [192.168.2.91:22616] ####
#### parseVideoArgs - (0) 720x480 ####
#### parseVideoArgs - (1) 720x480 ####
#### parseAudioArgs - 44100,2,32000,1 ####
### parseArgs - config/devInfo.txt, Name:[联通小单?##### output_store ######
?56001],ID:[YS-###### davinci_get_cur_encoder ######
56001] ###
Encode streaming star###### vpbe_encoder_initialize ######
ting...
1
2
3
4
###### output is COMPOSITE,outindex is 0 ######
###### vpbe_encoder_setoutput ######
###### dm365 = 1 ######
###### mode_info->std is 1 ######
###### mode is NTSC ######
###### 22VPBE Encoder initialized ######
###### vpbe_encoder_setoutput ######
###### dm365 = 1 ######
###### mode_info->std is 1 ######
###### mode is NTSC ######
###### davinci_enc_set_output : next davinci_enc_set_mode_platform ######
###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######
###### output_show ######
###### davinci_enc_get_output ######
###### davinci_get_cur_encoder ######
###### mode_store ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_set_mode ######
###### davinci_get_cur_encoder ######
###### dm365 = 1 ######
###### mode_info->std is 1 ######
###### mode is PAL ######
###### davinci_enc_set_mode : next davinci_enc_set_mode ######
###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######
###### mode_show ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
Found width=720 height=480, yres_virtual=480,xres_virtual=720, l###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_set_mode ######
###### davinci_get_cur_encoder ######
###### dm365 = 1 ######
###### mode_info->std is 1 ######
###### mode is PAL ######
###### davinci_enc_set_mode : next davinci_enc_set_mode ######
###### davinci_enc_set_mode_platform : next davinci_enc_priv_setmode ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
ine_length=384
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
###### davinci_enc_get_mode ######
###### davinci_get_cur_encoder ######
5
6
7
sd write module ok...
____Mp4Recover module ok!
/media/mmcblk0p1/video/temp/YS-56001_11-24_10h59m49s.mp4 Need to recover!
~~~~~~~~~~~~~~now! is ready to recover!
now! is get_data!
get data all!
now! is make mp4!
### sps.pic_width_in_mbs_minus1 : 0
    sps.pic_height_in_map_units_minus1 : 0
    sps.vui_parameters.time_scale : 139596691
    sps.vui_parameters.num_units_in_tick : 376021250 ###
now! is follow handle!
__cgy in main all!
sd write init ok## davinci_pio_led:ioctl:out: GPIO-47=0 now.ret= 0 ## 

func_sd_input_data ok
+
###READY TO PM###18
there is a sd need to be mounted 0000
### name:[mpeg4enc] ###
### name:[h264enc] ###
#davinci_resizer davinci_resizer.2: RSZ_G_CONFIG:0:1:124
## name:[mpeg2enc] ###
### name:[jpegenc] ###
### name:[g711enc] ###
### name:[aacenc] ###
###Ready to open encoder###
davinci_previewer davinci_previewer.2: ipipe_set_preview_config
############
v4l2_device_call_until_err sdinfo->grp_id : 5.
vpfe-capture vpfe-capture: error in getting g_fmt from sub device
############
v4l2_device_call_until_err sdinfo->grp_id : 5.
###succeed to open encoder###
setrlimit ok
FD_SETSIZE= 1024
udp port multiplexing : 1
#### InitUdpSocket - SO_RCVBUF : 217088, SO_SNDBUF : 217088 ####
mount: /dev/mmcblk0p1 already mounted or /media/mmcblk0p1/ busy
###### len = 26 #########
mount: according to mtab, /dev/mmcblk0p1 is already mounted on /media/mmcblk0p1
add sd card
############# PUID:83
bjwLgn.strModel:bjw-2013
PUID=83
### do_login: sockfd = 32 
Login response status : d
 ACK 
vpfe-capture vpfe-capture: IPIPE Chained
vpfe-capture vpfe-capture: Resizer present
*****input=0****EVM: switch to tvp5150 SD video input
***
############
v4l2_device_call_until_err sdinfo->grp_id : 5.
###j=1###
***  Video ASK Rep  *** 
startdata ok!
*****queryInput=0*******
############
v4l2_device_call_until_err sdinfo->grp_id : 5.
setsockopt ok!
vpfe-capture vpfe-capture: width = 736, height = 480, bpp = 1
vpfe-capture vpfe-capture: adjusted width = 736, height = 480, bpp = 1, bytesperline = 736, sizeimage = 529920
vpfe-capture vpfe-capture: width = 736, height = 480, bpp = 1
vpfe-capture vpfe-capture: adjusted width = 736, height = 480, bpp = 1, bytesperline = 736, sizeimage = 529920
### BJW_DealMsg - VIDEO: FORCE IDR ###
BJW_DealMsg - CONNECTED 42
### videoThrFxn - video0 construct IDR ###
***succeed to get capture***
### sps.pic_width_in_mbs_minus1 : 0
    sps.pic_height_in_map_units_minus1 : 0
    sps.vui_parameters.time_scale : 139596691
    sps.vui_parameters.num_units_in_tick : 376021250 ###
.
dm368-evm login: 
 _____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_ 
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project http://arago-project.org dm368-evm ttyS0

Arago 2011.02 dm368-evm ttyS0

dm368-evm login: root

root@dm368-evm:~# 

DM368开发 -- 文件烧写[通俗易懂]
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/170226.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • jdk的动态代理机制_jdk动态代理

    jdk的动态代理机制_jdk动态代理摘要:    代理模式为其他对象提供了一种代理以控制对这个对象的访问,具体实现包括两大类:静态代理和动态代理。Java动态代理机制的出现使得Java开发人员只需要简单地指定一组接口及委托类对象便能动态地获得代理类,并且其所生成的代理类在将所有的方法调用分派到委托对象上反射执行的同时,还可以对方法进行增强,这也正是SpringAOP的实现基础。通过阅读本文,读者将会对代理模式和Java动态…

    2022年10月16日
  • vue双向绑定失效_vue 跨域

    vue双向绑定失效_vue 跨域v-for渲染一个数组到视图上,对这个数组进行如下操作时会导致双向绑定失败无法在视图上渲染最新的数据:1.对这个数组的数组项整个进行修改Item:[{name:’小王’,age:19,},{name:’小张’,age:22}]this.Item[0]={name:’小K’,age:98}此时发现视图上渲染的第0项是没有改变的,但是打印出来的Item是已经修改到的为什么说整个数组项,如果对数组内对象的某个属性值修改,视图上还是能监听到的2.对这个数组进行添加或删除操作this.Ite

  • 渗透测试网站_zz二测

    渗透测试网站_zz二测分享一个ZPL指令在线测试网址http://labelary.com/viewer.html

    2022年10月29日
  • java swing视频教程下载_JAVA Swing 教程

    java swing视频教程下载_JAVA Swing 教程JAVASwing教程,包含所有练习源码和讲解教程!初级界面篇练习01分解颜色练习02画板练习03帧练习04画布练习05密码验证界面练习06对话框练习07滚动条练习08边框练习09单选框图片浏览器练习10卡片布局管理器练习11边界布局管理器练习12进程条练习13列表框和组合框练习14选项卡练习15菜单练习16菜单快捷键练习17模式对话框练习18网格布局管理器练习19复选框练习20单选框练习21…

  • C++如何做字符串分割(5种方法)

    C++如何做字符串分割(5种方法)1、用strtok函数进行字符串分割原型:char*strtok(char*str,constchar*delim);功能:分解字符串为一组字符串。参数说明:str为要分解的字符串,delim为分隔符字符串。返回值:从str开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。其它:strtok函数线程不安全,可以使用strtok_r替代。示例://借助strtok实现split#include<string.h>#include<stdio.h&

  • 3极管工作原理_通信终端工作原理

    3极管工作原理_通信终端工作原理一、很多初学者都会认为三极管是两个PN结的简单凑合(如图1)。这种想法是错误的,两个二极管的组合不能形成一个三极管。我们以NPN型三极管为例(见图2),两个PN结共用了一个P区——基区,基区做得极薄,只有几微米到几十微米,正是靠着它把两个PN结有机地结合成一个不可分割的整体,它们之间存在着相互联系和相互影响,使三极管完全不同于两个单独的PN结的特性。三极管在外加电压

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号