@bigfly --batch-size设置1就行了,他会量化dataset.txt里全部
记得是拿这里得数据集来量化
livpo 发布的帖子
-
回复: V853那个NPU的demo测试例子中量化图片能量化多张?
-
回复: 使用创龙A40i评估板,想做arm与FPGA sdio 通信,请问ARM的设备树配置在哪里呀?
可以查阅tools/pack/chips/sun8iw11p1/configs/tlt3_a40i-evm目录下的fex文件。
-
回复: 有谁知道THS的efuse寄存器 在sid中的偏移地址?
comment; Security ID#type; SID#base; SID 0x03006000#regdef; SID_RKEY0; 0x000; Securiy root key[31:0]#regdef; SID_RKEY1; 0x004; Securiy root key[63:32]#regdef; SID_RKEY2; 0x008; Securiy root key[95:64]#regdef; SID_RKEY3; 0x00C; Securiy root key[127:96]#regdef; SID_THS; 0x014; [27:16]: The calibration value of the T-sensor.#regdef; SID_DATA; 0x200 4; SID data (xfel display as 'sid' replay)#regdef; BOOT_MODE; 0x210; [27:16]: eFUSE boot select status, [0]: 0: GPIO boot select, 1: eFuse boot select#regdef; SID_UNDOC; 0x214 507;#regdef; pad 0; 2560; Set i/o block size
-
回复: MQ T113 原理图上console接口和官方出的不是一个呢?原理图是uart3,官方硬件是uart0
我用的mq-r v1.0的很小的板子,console用的uart0(PE2和PE3),你自己在sys config.fex里核对一下就好了。记得接地线。
-
回复: 如何编译glibc库
遵循以下步骤
make工具
注意由于AW服务器make版本为3.8.1,在编译glibc高版本时候不兼容,所以需要更新make工具。假如服务器make版本较高,可以不用更新make工具。
网址 http://ftp.gnu.org/pub/gnu/make ,下载最新版本4.3。解压后,对make工具进行安装。进入make-4.3源码目录,执行以下命令。
# prefix 后面路径为make工具安装路径,这里我们指定安装到out目录下。 ./configure --prefix=${path} make make install
安装完成,我们看到make 4.3版本
glibc源码下载
网址 http://ftp.gnu.org/pub/gnu/glibc/ ,下载所需的glibc版本,注意gcc工具链版本和glibc版本需要匹配。
如下图所示是准备好编译脚本env. sh,glibc各个版本源码。
env.sh是把所有编译步骤整合在一起的脚本,可以根据具体情况单独执行每条指令。
打开脚本env.sh脚本。第4行是gcc位置,第5行是make工具位置(不需要安装高版本make可以去掉),第7行是glibc版本,第12行是glibc源码路径,第13行是glibc生成库文件路径,第14行是glibc编译过程产生中间文件存放路径,第16行是修改环境变量,使用我们自己的make和gcc工具。第30-33行,用于编译glibc。
其中31行 --host=arm-none-linux-gnueabihf ,host填入值要和gcc匹配 ,否则会出差。
运行env.sh脚本
./env.sh
注意下信息,我们可以看到glibc生成准备环境时候,已经使用了我们指定gcc工具链,make工具。
编译完成后,我们看到对应so库
替换glibc,例如在我们测试demo,修改Makefile,指定到我们glibc版本路径即可
重新编译,查看对应执行文件,看到已经使用对应版本版本glibc库
strings main | grep glibc
版本匹配问题
1、gcc-linaro-5.3.1-2016.05-x86_64_arm-linux-gnueabi版本,glibc 2.29以下版本都可以编译通过
2、gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf版本,目前只在glibc 2.33编译通过,其他版本需测试。
-
T113在内核中采用硬解jpeg方式实现开机动画
参考几位大神的logo替换方法以及相关问题:
主要实现思路:在kernel中,将jpg图片通过VE解码,连续显示形成动画。先将视频按帧截取成jpg图片,打包成特定格式的二进制文件。把资源包放入到一个指定分区中,在uboot阶段加载资源包,并告知kernel将资源包的内存区域保留出来。
资源包制作
int test_pic(int argc, char **argv) { FILE *fp_in; FILE *fp_out; int rc; char bmpfile[1024] = {0}; char path_out[1024] = {0}; int i = 0; char buffer[4096]; unsigned int length = 0; int pic_num = 100; if (argc > 3) { pic_num = atoi(argv[3]); } printf("pic_num:%d\n", pic_num); sprintf(path_out, "%s", argv[2]); printf("output:%s\n", path_out); fp_out = fopen(path_out, "wb+"); if (fp_out == NULL) { printf("Open file %s error\n", bmpfile); return (-1); } fwrite(&pic_num, 4, 1, fp_out); for (i = 0; i < pic_num; i++) { sprintf(bmpfile, "%s/1 (%d).jpg", argv[1], i + 1); fp_in = fopen(bmpfile, "rb"); if (fp_in == NULL) { printf("Open file %s error\n", bmpfile); return (-1); } length = get_file_size(bmpfile); if (length < 1) { printf(" file %s error\n", bmpfile); return (-1); } fwrite(&length, 4, 1, fp_out); while (!feof(fp_in)) { rc = fread(buffer, 1, 1024, fp_in); if (rc < 1) printf("file %s error\n", bmpfile); fwrite(buffer, 1, rc, fp_out); } fclose(fp_in); } fclose(fp_out); return 0; }
将所有图片打包成一份二进制文件,并命名为animation.fex,文件内容格式如下:
图片总数量 第一张图片大小(int) 第一张图片内容 第二张图片大小(int) 第二张图片内容 依此类推 int int char 数组 int char 数组 。。。 使用方法:
./bin/demo [图片路径] [资源包路径] [图片数量]
如:
./bin/demo bin/Capture100/ bin/animation.fex 90
log输出:
pic_num:90 output:bin/animation.fex
资源包的制作和内核中读取的格式相对应,如有需要可自行拓展。
资源包存放
新建一个分区
diff --git a/configs/demo2.0/longan/sys_partition.fex b/configs/demo2.0/longan/sys_partition.fex index c67aca3..1e12607 100755 --- a/configs/demo2.0/longan/sys_partition.fex +++ b/configs/demo2.0/longan/sys_partition.fex @@ -68,9 +68,9 @@ size = 16384 ;------------------------------>mmcblk0p6/nand0p6 [partition] - name = recovery - size = 231072 - ;downloadfile = "recovery.fex" + name = animation + size = 102400 + downloadfile = "animation.fex" user_type = 0x8000 ;------------------------------>mmcblk0p7/nand0p7 diff --git a/pack b/pack index d57362b..77e7b1f 100755 --- a/pack +++ b/pack @@ -164,6 +164,7 @@ ${LICHEE_COMMON_CONFIG_DIR}/tools/cardscript.fex ${LICHEE_COMMON_CONFIG_DIR}/tools/cardscript_secure.fex ${LICHEE_CHIP_CONFIG_DIR}/tools/cardscript.fex ${LICHEE_CHIP_CONFIG_DIR}/tools/cardscript_secure.fex +${LICHEE_CHIP_CONFIG_DIR}/tools/animation.fex ${LICHEE_COMMON_CONFIG_DIR}/tools/cardtool.fex ${LICHEE_CHIP_CONFIG_DIR}/tools/cardtool.fex ${LICHEE_COMMON_CONFIG_DIR}/tools/usbtool.fex
uboot修改
合入补丁
通过
CONFIG_ANIMATION_MEM_RESERVE
控制功能的开启关闭。
从emmc读取整个分区,分区越大耗时越久,可适当减少分区大小。
kernel修改
合入补丁通过
CONFIG_ANIMATION_MEM_RESERVE
宏开启
注意编解码VE和显示DE驱动代码的初始化的先后顺序
-
回复: 没有装载mmc驱动启动卡住
@bayche 还真可以了,难道armbian先使用ramdisk启动ram文件系统装载了电源驱动才正常挂载mmc? 现在文件系统可能还有点问题
-
没有装载mmc驱动启动卡住
各位大佬,请教个问题,我拿armbian打过补丁的linux-5.19.4内核出来玩,启动的时候没有装载mmc驱动,然后一直卡在这了。是不是armbian使用ramdisk在哪里配置关闭了mmc的驱动加载?
-
交叉编译NumCpp到ARM上的方法(以全志V853为例)
前段时间,在电脑上安装了Ubuntu/Windows系统双系统,现在拿Ubuntu系统试试水。
NumCpp是类似Numpy的C++版本,可以方便的进行一些矩阵的操作,现在我们来把它交叉编译到ARM上去。
1. 获取源码
要交叉编译NumCpp,首先要获取依赖库boost源代码以及NumCpp的源代码。
在这里我使用的是boost1.68,可以从下面这个网址下载。
https://www.boost.org/Boost C++ Libraries https://www.boost.org/
NumCpp可以从GitHub上clone下来
https://github.com/dpilger26/NumCppGitHub - dpilger26/NumCpp: C++ implementation of the Python Numpy library C++ implementation of the Python Numpy library. Contribute to dpilger26/NumCpp development by creating an account on GitHub. https://github.com/dpilger26/NumCpp
2. 交叉编译boost
将下载好的压缩包解压。
cd boost_1_68_0 ./bootstrap.sh --with-libraries=all --with-toolset=gcc
其中,--with-libraries可以选择自己想要安装的库。
执行完这一步之后,打开新生成的project-config.jam,修改下面这几行中的gcc部分。一定要注意空格!(每一个空格缺一不可),其中的arm-openwrt-linux-gcc的路径可以换成你的交叉编译器的路径
if ! gcc in [ feature.values <toolset> ] { using gcc : arm : /home/xinzhe/toolchains/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-gcc ; }
之后执行
./b2
检查输出的log中的编译器是否已经是交叉编译器,然后再执行
./b2 install --prefix=/home/xinzhe/Documents/boost_arm
其中--prefix后面是你想要的boost库安装路径。
安装完成后,检查安装的boost库是否为ARM版本。
3.交叉编译NumCpp
Clone完成NumCpp之后,进入NumCpp文件夹。
由于我之前编译过x86-64版本的NumCpp,因此在编译ARM版本的时候,需要修改CMakeLists.txt,让cmake找到ARM版本的boost库。
在CMakeLists.txt中寻找Boost有关代码的上方加入
set(CMAKE_FIND_ROOT_PATH /home/xinzhe/Documents/boost_arm) set(CMAKE_FIND_ROOT_PATH /home/xinzhe/Documents/boost_arm) if(NUMCPP_NO_USE_BOOST) target_compile_definitions(${ALL_INTERFACE_TARGET} INTERFACE -DNUMCPP_NO_USE_BOOST) else() find_package(Boost 1.68.0 REQUIRED COMPONENTS date_time ) target_link_libraries(${ALL_INTERFACE_TARGET} INTERFACE Boost::boost $<$<OR:$<CXX_COMPILER_ID:Clang>,$<CXX_COMPILER_ID:GNU>>:Boost::date_time> ) endif()
同时,在NumCpp文件夹里,创建一个Compile.cmake文件,来指定交叉编译器。内容如下:
set(CMAKE_SYSTEM_NAME Linux) set(TOOLCHAIN_PATH /home/xinzhe/toolchains/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/arm-openwrt-linux-muslgnueabi) set(CMAKE_C_COMPILER /home/xinzhe/toolchains/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-gcc) set(CMAKE_CXX_COMPILER /home/xinzhe/toolchains/rootfsbuilt/arm/toolchain-sunxi-musl-gcc-830/toolchain/bin/arm-openwrt-linux-g++)
其中的TOOLCHAIN_PATH、CMAKE_C_COMPILER、CMAKE_CXX_COMPILER替换成自己的交叉编译工具。
然后在NumCpp文件夹下执行下面的操作
mkdir build cd build cmake .. -DCMAKE_TOOLCHAIN_FILE=../Compile.cmake
然后检查输出的log中,C编译工具是否为交叉编译工具,以及找到的boost库是否为我们刚刚创建的ARM版本的。
检查完毕后,修改/NumCpp/build目录下的cmake_install.cmake,修改其中的CMAKE_INSTALL_PREFIX为自己想要安装的目录。
# Install script for directory: /home/xinzhe/Documents/NumCpp # Set the install prefix if(NOT DEFINED CMAKE_INSTALL_PREFIX) set(CMAKE_INSTALL_PREFIX "/home/xinzhe/Documents/boost_arm") endif() string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
然后执行:
cmake --build . --target install
我们就在boost_arm下得到了ARM版本的boost和ARM版本的NumCpp的编译结果文件
4. 编译自己的代码
创建NumCpp_arm文件夹,放入自己的main.cpp,并创建Compile.cmake(同上),CMakeLists.txt。
其中CMakeLists.txt代码如下:
cmake_minimum_required(VERSION 3.20) project("HelloWorld" CXX) add_executable(${PROJECT_NAME} main.cpp) set(CMAKE_FIND_ROOT_PATH /home/xinzhe/Documents/boost_arm) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_FLAGS "-g -std=c++17 -lstdc++fs") find_package(NumCpp 2.10.1 REQUIRED) target_link_libraries(${PROJECT_NAME} NumCpp::NumCpp stdc++fs )
其中的CMAKE_CXX_FLAGS的设置,以及stdc++fs添加到target_link_libraries里,是为了防止一下的报错。
xinzhe@xinzhe-G3-3590:~/Documents/NumCpp/examples/NumCpp_arm/build$ make Consolidate compiler generated dependencies of target HelloWorld [ 50%] Linking CXX executable HelloWorld CMakeFiles/HelloWorld.dir/main.cpp.o: In function `std::filesystem::exists(std::filesystem::__cxx11::path const&)': main.cpp:(.text._ZNSt10filesystem6existsERKNS_7__cxx114pathE[_ZNSt10filesystem6existsERKNS_7__cxx114pathE]+0x1c): undefined reference to `std::filesystem::status(std::filesystem::__cxx11::path const&)' CMakeFiles/HelloWorld.dir/main.cpp.o: In function `std::filesystem::__cxx11::path::path<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::filesystem::__cxx11::path>(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::filesystem::__cxx11::path::format)': main.cpp:(.text._ZNSt10filesystem7__cxx114pathC2INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE[_ZNSt10filesystem7__cxx114pathC5INSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES1_EERKT_NS1_6formatE]+0x60): undefined reference to `std::filesystem::__cxx11::path::_M_split_cmpts()' collect2: error: ld returned 1 exit status make[2]: *** [CMakeFiles/HelloWorld.dir/build.make:98: HelloWorld] Error 1 make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/HelloWorld.dir/all] Error 2 make: *** [Makefile:91: all] Error 2
然后,我们执行一下操作
mkdir build cd build cmake .. -DCMAKE_TOOLCHAIN_FILE=../Compile.cmake
检查输出的log,交叉编译工具对不对,boost与NumCpp是否为ARM版本。
最后执行
make
下面的是我的编译结果,可以看到编译成功
xinzhe@xinzhe-G3-3590:~/Documents/NumCpp/examples/NumCpp_arm/build$ make [ 50%] Building CXX object CMakeFiles/HelloWorld.dir/main.cpp.o [100%] Linking CXX executable HelloWorld [100%] Built target HelloWorld
检查一下生成的可执行文件是够为ARM版本。
xinzhe@xinzhe-G3-3590:~/Documents/NumCpp/examples/NumCpp_arm/build$ file HelloWorld HelloWorld: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-musl-armhf.so.1, with debug_info, not stripped
5.移植到V853上
将HelloWorld文件和boost_arm整个文件夹push到板子上
xinzhe@xinzhe-G3-3590:~/Documents/NumCpp/examples/NumCpp_arm/build$ adb push HelloWorld /root HelloWorld: 1 file pushed. 3.6 MB/s (2607428 bytes in 0.684s)
然后到HelloWorld所在目录下执行
root@TinaLinux:~# export LD_LIBRARY_PATH=/root/boost_arm/lib:$LD_LIBRARY_PATH
可以看到我的HelloWorld正常执行
root@TinaLinux:~# ./HelloWorld [[0.452916, 0.119087, -0.459488, -0.733428, 0.374606, 0.244954, -0.237323, -0.109258, 0.907443, -0.413274, -0.157849, 0.158918, 0.0474297, -0.519952, 1.38254, -0.174767, -0.911914, -0.812675, -0.506005, -0.222257, -0.192745, -1.04207, 0.424627, 0.217617, 0.277484, -0.0261248, -0.0865481, -0.371074, -0.275607, 0.937942,
到这里,交叉编译就完成啦,希望各位小伙伴也能顺利进行!
原文链接:https://blog.csdn.net/where_are_u/article/details/129863901
-
回复: T113-s3 Register I2S (WM8782) ADC on ALSA
@vvpnet Do you mean to look for paid consultation?
-
回复: T113交叉编译QT libudev.so.1报错,但路径下有该文件
参照这里 :https://blog.csdn.net/qq_28877125/article/details/127098767
把udev关掉了,我的这个配置是yes,关掉就可以了 -
回复: T113交叉编译QT libudev.so.1报错,但路径下有该文件
@haaland
路径应该是对的,库都在这里面
编译出来的库1.6.3,这个183会不会是版本号?
如果183是版本号,那估计就是版本低了
-
T113交叉编译QT libudev.so.1报错,但路径下有该文件
芒果的T113,交叉编译QT报错,找不到libudev.so.1,但是路径下文件实际是存在的,初步怀疑是udev的版本不对
-
在MQ-R(F133)上 进行全志Melis-4.0(rt-thread内核)环境搭建与初步编译介绍
什么是Melis?
Melis是全志科技自研的一套rtos系统。自全志科技创建以来,该系统就已经问世,并持续抗战了近十年,其主要应用其自家的F系列芯片产品上,在MP3与老人机非常流行的时代,该系统配合着其F系列的芯片,真的是能抗能打,早在2012-2013年的时候,Melis的装机量就已经过亿,但因为其属于自研系统,全志科技并没有将其开源,导致虽装机量很多,但是很少人知道。
Melis之所以能抗战那么久,或者说全志科技之所以能在那个芯片行业并不出彩的年代坚持下来,我觉得主要归功于其F1C100s/F1C200s这个代的芯片。这款芯片差不多是十年前的产品,但是因为其具有很强的编解码能力,以及异于常人的性价比,现如今依然活跃在各个微媒体市场。
Melis经过了多个迭代,现如今配合着其最新推出的F133(risc-V)芯片,推出了最新的Melis4.0系统,并使用了更多人熟悉的RT-thread内核,在GitHub上,部分进行了开源,引领广大开发爱好者参与进risc-V的生态建设中。最近想用F133做一点有趣的开发,因此也开始研究Melis4.0。
个人觉得,通过学习melis系统,可以让学习者更了解系统的构成,什么是系统调用?系统是如何加载模块的?什么是BSP?等,对于学习者来说,是非常不错的入门选择。开发环境
- Ubuntu22.04虚拟机
- MQ-R(F133) 芒果派开发板
代码下载
GitHub的项目地址如下:
https://github.com/Tina-Linux/d1s-melis
仓库的简介提示,如果需要编译代码,需要手动下载一下相应的工具链并将工具链放在对应目录里。
工具链地址如下:
https://github.com/Tina-Linux/d1s-melis/releases
建议直接下载这个,因为工程中默认的也是这个
代码下载好后,解压。并将下载好并解压好的工具链放在代码的toolchain目录下。(我这里将原项目目录更名为了source,并不影响其它)
一切准备就绪后,即可开始编译。如果是新的系统,建议先安装一些依赖库,后续可能会用到。
sudo apt install autoconf automake autotools-dev curl python3 libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
编译
环境变量
在代码编译之前,我们可能需要设置很多环境变量(lunch 、croot、pack等),因为每一次的环境变量都是比较固定的,因此,项目中,将这些初始化环境变量的操作,都整合成了两个脚本,分别是"envsetup.sh"和“melis-env.sh”。因为melis-env.sh最终会自动调用“envsetup.sh”,因此,我们只需要执行“melis-env.sh”即可
#初始化环境变量 melis-env.sh
初始化环境变量后,我们需要通过“lunch”来选择我们需要编译的项目,lunch是通过扫描projects文件夹下的文件夹,进行识别一共有多少套方案,lunch选中后,系统的编译参数、打包参数,运行参数等,就会使用对应方案文件夹中的配置文件。(具体为什么叫lunch,原因不详,或许本应该是launch?学习英语任重道远!)
对应方案
#通过lunch来选择要编译的项目 lunch
因为我使用的是麻雀的开发板,因此我这里选择3.
编译
以上流程走完后,原工程是可以直接make的,但是第一次编译,或者选择了不同方案后编译,建议都是要clean一下,重新lunch一次,避免环境不干净。
#先clean一下 make clean #再把方案清一下 make distclean #重新lunch,再选择一次方案 lunch #执行make操作 make
注意,如果你在kconfig中,增加了某些选项,但是没有在deconfig中增加对应的配置,直接make可能会报错。需要通过make menuconfig来重新生成默认的编译配置。
#通过make menuconfig选择编译参数 make menuconfig
注意:curses.h: No such file or directory ,那是因为环境没弄好,“sudo apt install libncurses5-dev” 即可
第一次编译,直接保存即可。配置默认是保存在当前目录下的 “.config”文件中,最好不要改文件名。如果不想每次编译都make menuconfig,那么就将当前的“.config”的内容,更新到对应方案目录下的deconfig文件中。比如我要改的话,那我就需要将“.config”文件中的内容,全部替换到**“projects/d1s-mq/configs/deconfig”**文件中,这样每次lunch之后,系统默认来这里来拿编译参数。
以上完成后,就可以直接make了,如果没改过任何东西的话,是可以直接编译通过的。如果不通过,可能要检查一下自己的环境是否安装完善,勤加百度,即可解决问题。
打包
编译成功后,可以通过pack,将编译好的文件,全部打包成一个.img的固件。
因为固件可能是用于卡烧录的,用于nor烧录的,用于nand烧录的,根据烧录方式的不同,需要搭配不同的参数,默认是打包生成nor烧录的固件。#通过pack指令,打包生成固件(默认生成nor固件) pack #生成nand烧录固件 pack -a nand #生成卡烧录的固件 pack -a card
最终的固件将会生成在“out/对应方案/”目录下。
注意:如果出现如下错误:
这个时候,打包是没有成功的,cd到对应目录下,查看文件夹下,又是存在这个dragon文件,有点神奇。其实是因为dragon这个程序是在32位机器上编译出来的,这是32位的程序,在64位的Ubuntu中运行需要提前安装32位的库。
请执行操作:
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 -y sudo apt install lib32z1 -y
重新pack后,没有提示,打包成功。
注意事项:
-
source melis-env.sh 的操作仅在当前终端有效,新开终端,或者关闭了终端后,需要重新source一下,才能进行下面的操作。
-
lunch操作与source操作一样,都是只对当前终端有效,每次打开新终端,都需要进行一次source、lunch。
小贴士:
source了之后,可以使用各种快捷调整指令,方便开发
croot 回到项目根目录 ckernel 跳转至kernel文件夹 cmodoule 跳转至模块文件夹 。。。(更多操作,可以看环境脚本“envsetup.sh”中的function有哪些)
原文链接:https://blog.csdn.net/qq_43280079/article/details/127189338
作者@waxly- -
PhoenixSuit烧录工具四种烧录模式说明
如图所示,分四种烧录模式分别是:单或多分区下载、保留数据升级、分区擦除升级和全盘擦除升级。
下面对四种烧录模式进行说明:
- 单或多分区下载:用户加载固件之后,会从固件信息读取到MBR表的分区信息,然后将每个分区名字显示在UI上提供可选择单或多个分区烧录,若全部不选择,则默认下载物理分区的boot0和boot1。
- 保留数据升级:此模式仅擦除sys_partition配置的分区,但不包含udisk或user_data分区的数据。
- 分区擦除升级:此模式仅擦除sys_partition配置的分区,与“保留数据升级”相反,擦除包含udisk或user_data。
- 全盘擦除升级:顾名思义,就是将flash进行初始化,所有的数据将会被擦除
-
回复: t113每次重启网卡的mac地址都是随机的
@dort91011 是的,需要将md5加到内核里
另外还有一个问题就是
#define sunxi_get_soc_chipid(x) {}
这里获取id的函数是空的,
然后参考了一下全志其他的代码是用到了
sunxi-sid.c
里的,然后加了一下这个头文件,就可以获取到chipid了这样就没有上面的报错了
-
t113每次重启网卡的mac地址都是随机的
请教下各位大佬,t113每次重启网卡的mac地址都是随机的,跟了内核后发现是这里失败了
crypto_alloc_ahash
内核打印Failed to alloc md5,错误内容如下
有人遇到过这个问题吗
-
AP_MOD 参与编译STA,MON置0 程序一直重启的问题
输出如下,好像是在rtos环境下进行的编译
XRADIO Skylark SDK 1.1.1 Sep 1 2022 07:05:27 sram heap space [0x214794, 0x26dc00), total size 365676 Bytes cpu clock 240000000 Hz HF clock 40000000 Hz sdk option: XIP : enable INT LF OSC : enable mac address: efuse : 00:00:00:00:00:00 in use : 28:0d:0f:b2:3f:64 ==================================================================== open ap mode -----------------> enter ap mode -----------> en1: CTRL-EVENT-TERMINATING WAR join_status:0 15:14:59.761 wlan information =================================================== firmware: version : R-XR_C10.08.52.64_01.80 Jul 6 2019 20:05:10-P01.00.30 buffer : 12 driver: version : XR_V02.05 ==================================================================== interface name: en1 Using interface en1 with hwaddr 28:0d:0f:b2:3f:64 and ssid "AP-XRADIO" 15:15:00.333 --------1----------- en1: interface state UNINITIALIZED->ENABLED en1: AP-ENABLED [net INF] msg <wlan connected> [net INF] netif is link up [net INF] bring up netif exception:6 happen!! appouse default flash chip mJedec 0x0 [FD I]: mode: 0x4, freq: 96000000Hz, drv: 0 PMA: mode select:e 15:15:00.473 wlan information =================================================== firmware: version : R-XR_C10.08.52.64_01.80 Jul 6 2019 20:05:10-P01.00.30 buffer : 12 driver: version : XR_V02.05 ==================================================================== PMA: wlan mode:a platform information