Uboot

tftp 烧写

以下地址和大小仅适用于当时的分区表。预填充 0xff 要使用 mw.b,count 才按字节计;默认 mw 通常按 32 位单元写入,相同 count 会覆盖四倍的内存范围。烧写前还需确认 TFTP 成功且镜像大小未超过分区。


烧写内核(2560KB)
mw.b 80008000 ff 280000;tftpboot 80008000 uImage_918
sf probe 0;sf erase 70000 280000; sf write 80008000 70000 280000

烧写根文件系统(3072KB)
mw.b 80008000 ff 300000;tftpboot 80008000  rootfs_36_2026_09_18
sf probe 0;sf erase 2F0000 300000 ;sf write 80008000 2F0000 300000 

烧写app(16384KB)
mw.b 80008000  ff 1000000;tftpboot 80008000 appfs_2026_09_18
sf probe 0;sf erase 5F0000 1000000 ;sf write 80008000 5F0000 1000000 
#给算法分配内存
setenv bootargs 'console=ttyS1,115200n8 mem=128M@0x0 rmem=96M@0x8000000 nmem=32M@0xE000000 root=/dev/mtdblock3 rootfstype=squashfs ro init=/linuxrc ignore_loglevel mtdparts=jz_sfc:384k(boot),64k(logo),2560k(kernel),3072k(rootfs),16384k(appfs),-(para) lpj=11968512'

make

媒体

音频

一帧的时长 = 一帧采样点的个数 / 采样率

采样率:8000Hz,一帧采样点个数:320。可以计算出一帧的时长是40ms

音频帧

音频帧其实只是把很多采样点打包起来,ADC实际上就是不断的产生数据:

sample0
sample1
sample2
sample3
sample4
...

但是软件如果每产生 1 个 sample 就通知应用程序一次,效率会非常低,所以驱动通常把一定数量的采样点聚合成一个 Audio Frame:

连续 PCM:

0  1  2  3  4  5  ............ 319
└───────────────────────────────┘
              Frame 0
              320 samples
              40 ms

320 321 322 .................... 639
└───────────────────────────────┘
              Frame 1
              320 samples
              40 ms

A1的音频帧参数

  • 采样率:8000Hz
  • 位深:16 Bit
  • 单声道
  • 1帧为320个采样点

一帧的大小 :320 *2 Byte =640Bytes