记一次编译的库放在系统的app的lib中没有打印的记录

16 篇文章 2 订阅
15 篇文章 2 订阅

正常流程

1.手动测试ais的log是否已经出来的步骤
  先单独编译ais目录下的 ais_client   ais_sensor_lib  ais_server  qcar_api  qcar_jni
  然后再编译 ais的整个目录
  我们使用的是32位的so.
  所以,我将out/..../system/lib/下的
  libmmqcar_qcar_jni.so
  libmmqcar_ais_client.so
  libqcaraudiorecorder.so
  libqcarlibyuv.so
  libqcarmdvxwrite.so
  libqcarosd.so
  libqcarprotobbtrp.so
  将 七 个库 手动push 到 我们的apk目录
  /system/priv-app/AilivingCar/lib/arm64 #
  然后再sync 再重新 reboot 系统,当预览出界面时,保存log.搜索我们 添加的关键字。 没有搜索到我们添加了关键字的log 
  
  考虑是否还要更新/system/lib/ 
  再将 这七个库 push 到 /system/lib 
  sync 
  reboot
  当预览出界面时,保存log.搜索我们 添加的关键字。 没有搜索到我们添加了关键字的log
  
  是否so编译出来,烧录后不正确,将正在使用的 
   /system/priv-app/AilivingCar/lib/arm64 #
   库导出来,adb pull  /system/priv-app/AilivingCar/lib/arm64 # 与编译出来的比较,是一样的
   
2.只有重新干净的编译一下系统烧录测试
  删除out目录
  确定将编译出来的 七个库放在  /packages/apps/AilivingCar/lib/armeabi-v7a$
  然后全部编译
  烧录到主板
  当预览出界面时,保存log.搜索我们 添加的关键字。 没有搜索到我们添加了关键字的log
  
查看其log的级别,在打印中看到有
01-19 06:18:20.646  3595  3595 E AIS-CLIENT: [INFO][client_debug_control:221] debug enable 2

还是没有我们添加log出来
这样试,log出来

解决方法
1.在编译的文件中添加错误的 语句,确定编译有错
2.去掉 错误  进行重新编译
3.在生成的out目录下的lib中,搜索 添加的关键字 grep “carl.xu” . -nir 是否匹配
4.烧录文件
5.系统启动后,在system/lib或者app的lib目录中,搜索 关键字  grep “carl.xu” . -nir 是否匹配
6.确定调用 成功 。
7.保存Log.然后  查找log文件中的关键字
8.将库放到 android studio中,编译成apk
9.将apk解压出来,取出相关的库
10.将解出来库,放在系统app 中的32位还是64位的文件夹中
11.重新编译mm -B  相关

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在STM32,可以通过以下步骤在主函数设置断向量表编译APP: 1. 首先,需要在代码引入CMSIS头文件及STM32F1xx系列头文件,例如: ``` #include "stm32f1xx.h" #include "core_cm3.h" ``` 2. 接着,需要定义一个函数指针数组,用于存放断服务函数的地址。例如: ``` void (* const g_pfnVectors[])(void) = { (void (*)(void))((uint32_t)&Image$$ARM_LIB_STACK$$ZI$$Limit), Reset_Handler, NMI_Handler, HardFault_Handler, MemManage_Handler, BusFault_Handler, UsageFault_Handler, 0, 0, 0, 0, SVC_Handler, DebugMon_Handler, 0, PendSV_Handler, SysTick_Handler, /* Interrupts */ WWDG_IRQHandler, ... }; ``` 其,`g_pfnVectors`数组存放了所有断服务函数的地址,这些地址按照断向量表的顺序进行排列。 3. 在主函数的开头,需要将断向量表的地址重新定位到g_pfnVectors数组,例如: ``` void relocate_vector_table(void) { SCB->VTOR = (uint32_t)g_pfnVectors; } ``` 在这个函数,将`g_pfnVectors`数组的地址赋值给`VTOR`寄存器即可。然后在主函数的开头调用`relocate_vector_table()`函数即可。 4. 最后,在编译时需要设置链接脚本,使得断向量表被编译APP。例如,在Keil MDK,可以在链接选项添加以下语句: ``` --entry=Reset_Handler \ --scatter=scatter_file.sct \ --ro-base=0x08000000 \ --rw-base=0x20000000 \ --first=Reset_Handler \ ``` 其,`scatter_file.sct`是链接脚本文件的名称,`--ro-base`和`--rw-base`分别指定代码段和数据段的起始地址。`--entry`指定程序的入口地址,这里设置为`Reset_Handler`。`--first`也指定程序的入口地址,这里同样设置为`Reset_Handler`。 通过以上步骤,就可以在主函数设置断向量表编译APP了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值