- 博客(39)
- 资源 (1)
- 收藏
- 关注
原创 APM32F103CBT6调试接口复用为GPIO配置问题
APM32F103CBT6调试接口复用为GPIO配置,需要重做GPIO_ConfigPinRemap。
2022-09-27 17:54:23
1116
1
原创 NRF52840 用RTT打印log配置方法
1 在sdk_config.h中配置两个宏:NRF_LOG_ENABLED 1NRF_LOG_BACKEND_RTT_ENABLED 12 需要初始化NRF LOGstatic void log_init(void){ ret_code_t err_code = NRF_LOG_INIT(NULL); APP_ERROR_CHECK(err_code); NRF_LOG_DEFAULT_BACKENDS_INIT();}3 连接RTT VIEWER4...
2022-04-28 11:25:53
1348
原创 杰理AC697N平台用SPP传输定制化数据
1 打开开关:USER_SUPPORT_PROFILE_SPP,APP_ONLINE_DEBUG2 找到注册收发SPP数据接口 earphone.c 有void bredr_handle_register(){ spp_data_deal_handle_register(user_spp_data_handler); online_spp_init();}而里面有void online_spp_init(void){ spp_state = 0; ...
2022-04-22 11:28:58
398
原创 mt6762添加gpio按键方法与问题调试
mt6762添加gpio按键方法与问题调试1 配置dts文件.定义gpio87为拍照键,对于keycode = 212.gpio_keys:gpio_keys { compatible = "gpio-keys"; input-name = "gpio-keys"; autorepeat; key_camera { label = "Camera Key"; linux,code = <...
2022-04-02 10:04:25
2879
原创 mtk智能机平台LCM,CTP的ESD防护处理
一 LCM ESD防护1 TE方法屏幕定义TE中断脚dts文件中定义中断脚: dsi_te: dsi_te { compatible = "mediatek, dsi_te-eint"; interrupt-parent = <&eintc>; interrupts = <44 IRQ_TYPE_EDGE_RISING>; //修改为44 debounce = <44 0>; status = "okay...
2022-03-26 10:18:40
801
原创 MT6762平台NXP NFC代码移植要点
1 找到官网,获取源码包NXP NFC移植源码https://github.com/NXPNFCProject固件https://github.com/NXP/nfc-NXPNFCC_FW/tags2 主要介绍源码移植打开https://github.com/NXPNFCProject下载对于源码包放到工程对于目录nfcandroid_nfc_hidlimpl-master -->hardware/nxp/nfc目录下nfcandroid_secureelement-master
2022-03-25 14:15:57
1525
1
原创 mt6762/mt6765平台i2c驱动能力修改与波形优化
mt6762在连接一些外设时,i2c在低电平会拉不低的情况,最低电平在0.4V左右.这时需要去掉外设的上拉电阻或调整硬件i2c的驱动电流.修改文件路径:vendor/mediatek/proprietary/bootable/bootloader/preloader/platform/mt6765/src/drivers/i2c.c修改函数:int i2c_hw_init(void)1 修改上拉电阻 /* Switch internal resistor */ /* 0...
2022-03-18 12:06:34
2512
原创 MTK6765 COL0对地拉低开机慢问题
COL0对地拉低会会引起开机两个问题.1开机后进入facotry测试模式2会先进入bootROM USB模式导致开机慢原因是COL0定义了VOLUMEUP/VOLUMEDOWN,加上power key组合键就进入了acotry测试模式另外,mt6765定义GPIO93默认COL0,按下power key会先进入bootROM USB模式,检测是否连接USB,否则再进行正常开机.如果硬件上GPIO93对地拉低,则解决上述问题软件需要做如下修改1解决进入facotry测试模式问题,打开dws,将
2022-03-11 09:44:33
515
原创 mtk6765上i2c-tools的使用
1 下载i2c-tools 从开源网站http://dl.lm-sensors.org/i2c-tools/releases/下载i2c-tools 几个版本都可以用,可以选择下载i2c-tools-4.32 到官网下载交叉编译环境 gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xzhttp://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-
2022-02-21 10:38:19
2168
原创 I2C协议调试总结
1 协议总结开始:在SCL为高期间,SDA由高变低结束:在SCL为高期间,SDA由低变高应答:时钟脉冲9期间释放数据线,SCL为高期间,SDA读入为低电平传输:在SCL为低电平期间,允许SDA变化,SCL变为高电平后,SDA必须稳定写:设备地址+写控制字节 OK?--->内部寄存器地址 OK?---->写入数据读:设备地址+写控制字节 OK?--->内部寄存器地址 OK?---->设备地址+读控制字节 OK?--->读入数据 写控制字节为0,读控制字节为12.
2022-02-19 11:50:48
4708
原创 MT6765中断处理IO口配置流程
1 添加EINT_VARalps/vender/mediated/proprietary/scripts/dct/ 目录下文件 YuSu.cmp,EINT_YuSu.cmp, GPIO_YuSu.cmp添加 IRQ_M300 和GPIO_IRQ_M300_PIN2 运行 alps/vender/mediated/proprietary/scripts/dct/DrvGen分别打开下面三个问题,相同配置:alps/kernel-4.9/drivers/misc/mediatek/dws/..
2022-01-24 21:02:02
516
原创 MTK Kernel-4.9 GPIO占用分析方法
有时需要查看GPIO 被哪个模块占用,需要打印LOG分析打开debug 开关:文件:alps/kernel-4.9/driver/pinctrl/mediatek/pinctrl-mtk-commom.h#define GPIO_DEBUG在文件:alps/kernel-4.9/driver/pinctrl/mediatek/pinctrl-mtk-commom.cstatic int mtk_pinctrl_set_gpio_mode(struct mtk_pinctrl *pctl.
2022-01-24 10:39:10
805
原创 络达AB1562双耳间数据通信的一种方法
双耳之间的数据同步,可以用如下接口:发送数据:void APP_MCSYNC_SendSyncGeneralData(U8 *pData, U32 length)接收数据:static U32 app_AwsMce_IndHandler(Handler handler, U16 id, void *msg, U32 handler_id)收到消息:AWSMCE_SYNC_GENERAL_DATA_IND在static void app_AwsMce_SyncGeneralDataIn
2021-12-16 09:34:08
282
原创 络达1562系统深度睡眠后RTC唤醒应用
络达1562系统,若要在耳机充电充满后进行电池检测工作,可以在耳机充满后,读取电池ADC。耳机充满后,会进入系统深度睡眠,只能通过RTC去唤醒,耳机唤醒开机后,读取ADC,读取完毕,毫秒级别处理后立刻恢复深度睡眠,防止耳机开机。这里涉及RTC启动的设置。系统在进入深度睡眠时,进入void port_sleepMode(int xExpectedIdleTime)。通过判断标识确定是否启动RTC if(rtc_config.enable)...
2021-11-22 11:00:46
638
原创 MT6765 CTP移植与调试
以GT911为例说明下.1 拷贝驱动与客制化文件.alps/kernel-4.9/drivers/input/touchscreen/mediatek/GT9112 添加编译条件在alps/kernel-4.9/drivers/input/touchscreen/mediatek/Kconfig下添加config TOUCHSCREEN_MTK_GT911 bool "GT1151 for Mediatek package" default n help ...
2021-10-23 18:42:34
434
原创 MT6765充电控制之routine thread
充电循环检查在alps/kernel-4.9/drivers/power/supply/mediatek/charger/mtk_charger.cstatic int charger_routine_thread(void *arg)如检测高温报警停充电charger_check_status(info);如果需要停止充电:调用_charger_manager_enable_charging(info->chg1_consumer, 0, false);...
2021-10-23 11:27:17
288
原创 MT6739充电IC集成步骤
以psc5415a为例,分LK与kernel两部分驱动集成一,kernel:1 新建驱动文件夹与文件alps/kernel-4.4/drivers/power/mediatek/charger/psc5415a.calps/kernel-4.4/drivers/power/mediatek/charger/psc5415a.h2 添加编译开关alps/kernel-4.4/arch/arm/configs/k39tv1_bsp_defconfig添加:CONFIG_CHARGER_PSC54
2021-10-14 16:49:14
466
原创 MTK 智能平台库伦计电池曲线调试
电池曲线不对,会出现电池放电不均匀,持续放电电量显示为0%,实际测量电池电压3.8V。或是放电到30%突然关机,或是充电充很难充满等一系列问题。下面从几个步骤校准电池曲线。一、 分析系统充放电图,如下图,充电的大概框架,充电从1点分两路,To battery一路与To phone.To battery 流过电池+电池内阻+rfg电阻.3点为电池地。2点为系统地(选择大块铺铜区域或屏蔽盖作为系统地即可)。1点为电池连接点的正极二、分析,电池曲线与系统读取电流的准确度,电池内
2021-10-14 09:53:59
2062
原创 WIFI ADB 配置
再USB 调试不方便连接时,WIFI ADB可以进行远程调试安卓系统软件与应用程序,步骤如下:1 查看android设备与PC连接上同一个WIFI后分配的IP:查PC机IP: ifconfig eth0192.168.xx.yy查android设备机IP: ifconfig wlan0192.168.xx.xx2 USB连接手机后,依次输入下面指令(如果在系统编译脚本中内置则不用执行下面指令):adb root;adb remount;adb pull system/
2021-09-29 11:24:31
777
原创 MTK平台MT6765 LCM屏调试步骤
1 总MK配置LCM的相关尺寸alps/device/mediateksample/k62v1_64_bsp/ProjectConfig.mkBOOT_LOGO = hd720LCM_HEIGHT = 1440LCM_WIDTH = 7202 cfg文件配置LCM的尺寸与编译LCD模块名称alps/kernel-4.9/arch/arm64/configs/k62v1_64_bsp_defconfigCONFIG_CUSTOM_KERNEL_LCM="ili9881c_hdp_d...
2021-09-29 11:14:41
1227
原创 AC697N事件发送与事件处理API
系统事件处理函数所有系统事件都经过下面函数进行分派和处理:static int event_handler(struct application *app, struct sys_event *event)发送系统事件API:void sys_event_notify(struct sys_event *e);struct sys_event e; e.type = 事件类型; e.arg = 事件参数; e.u.dev.event = 事件; e.u.dev....
2021-09-26 15:19:30
274
原创 杰理AC697N系列系统定时器使用注意事项
API:u16 usr_timer_add(void *priv, void (*func)(void *priv), u32 msec, u8 priority);priv:定时器传递的私有参数func:定时扫描回调函数msec:定时时间, 单位:毫秒priority:优先级,范围:0/1注意事项:1、usr_timer的参数priority(优先级)为1,使用该类定时器,系统无法进入低功耗2、usr_timer的参数priority(优先级)为0,使用该类定时器,系统低功耗会忽略该节拍
2021-09-26 15:17:59
769
原创 android 之进程异常终止监听并重启相关服务
当进程异常终止时,可以在进程的Application中设置异常终止的监听并重启相关服务。Thread.setDefaultUncaughtExceptionHandler(this);@Override public void uncaughtException(Thread thread, Throwable throwable) { if(thread != null && "main".equals(thread.getName())) {...
2021-09-17 18:08:22
854
原创 应用magisk ROOT系统
1先下载好软件开机,连接WIFI或移动网络2把下载软件包的boot.imgpush到sdcard内部存储空间:即在CMD下把输入下面指令adbpushboot.img(你电脑存放的位置,可以鼠标拖进去)sdcard/boot.img3运行桌面的应用magisk,点击安装,仅修复一个文件。进入文件选择界面后,点击右上角的action图标,选择显示内部存储空间。然后到内部存储空间选择boot.img4 制...
2021-09-17 17:49:08
2756
原创 MTK智能机RF参数备份说明
1 备份启动工具 点击才connect,如下图上电连接成功后,选择(5)加载database from target,如下图读取设备参数Export保存,名字命名最好为手机编号,不要搞乱保存完成,并把备份的参数发来,看IMEI码是否在?...
2021-09-17 17:45:20
342
原创 STM32F407之基于FreeRTOS的串口数据处理
串口数据处理比较频繁时,不用RTOS处理数据容易丢包。串口数据处理可以用FreeRTOS进行管理,用于支持串口的CMD指令收发。除了串口任务的创建,定时器创建外,单纯串口数据处理需要进行下面几个步骤。1 串口初始化与参数初始化定义串口数据机构体#define SH _BUFSIZE 512#define UART_BUFSIZE 1024typedef struct UART_Buffer{ /* @brief Rece...
2021-09-17 16:53:09
5695
原创 蓝讯AB5616对耳之间消息通信
耳机在连接状态下,可以对对耳发现消息码,可用于同步灯效,如主耳连接上手机时,主耳执行主耳灯效,同时通知发送消息副耳执行副耳灯效。使用接口: bt_tws_user_key(消息码)发送:if (bt_tws_is_connected()) { bt_tws_user_key(0x108);}接收:BSP_BT.cvoid bt_emit_notice(uint evt, u32 param)...
2021-09-17 10:44:46
991
原创 杰理AD697N快捷键定义进入语音模式
通过判断语音模式状态app_var.siri_stu,发送关闭或打开消息。 if (app_var.siri_stu && app_var.siri_stu != 3){ user_send_cmd_prepare(USER_CTRL_HFP_GET_SIRI_CLOSE, 0, NULL); }else{ user_send_cmd_p...
2021-09-17 10:38:06
416
原创 升级版本时,git 打包差分代码方法
在代码大版本升级时,有时需要把之前维护的版本的修改移植到新版本上,这需要用指令提前之前修改的代码:git diff 节点1 节点2 --name-only | xargs zip 差分包.zip如:git diff c1cbacc1f1b72bd07d98cd9a4095bbcea520040d a2919185fb724d401884d5b36cb18fde9de22433 --name-only | xargs zip patch.zip或git diff 节点1 节点2 --nam
2021-09-15 21:07:04
545
原创 蓝讯AB5616A 三方通话接口
1 bt_call_answer_incoming() //接听电话,三通时挂起当前通话2 bt_call_answer_incom_rej_other() //接听电话,三通时挂断当前通话3 bt_call_swap() //切换三通电话
2021-09-15 15:44:27
923
原创 kotlin之网络权限报错问题
发送网络请求时,val response: Response = client.newCall(request).execute()会报如下错误java.lang.SecurityException: Permission denied (missing INTERNET permission?)1 xml添加权限<uses-permission android:name="android.permission.INTERNET"/>2 打开界面时申请权限..
2021-09-07 14:22:50
332
原创 Kotlin 之JsonArray添加与清空
定义:val batch = JsonArray()添加val param = JsonObject()param.addProperty("mac", mMac)param.addProperty("result", mresult)param.addProperty("time", System.currentTimeMillis() / 1000)batch.add(param)清空,采用remove后,元素编号自动位移,长度自动减1if(batch!!.size(
2021-09-07 14:17:30
1381
原创 MVVM架构在Android应用程序中的监听示例
1加入LiveData组件2 LiveData赋值有两种方式postValue和setValue3 定义val event: LiveData<IntArray> get() = mEventData3 程序中发送数据:mEventData.postValue(XXX)注: xxx可以是字符串或整形数等4 在接受界面注册,当发送的数据是int类型的如下示例:text_total?.let { event.observe(this, Obser.
2021-09-04 21:14:08
282
原创 九齐MCU NY8B062A省空间之一
省空间方法1 少用浮点运算2 代码精简,判断条件时,不在定义域内的数据不要处理与判断3 预算时偏重于位操作4 判断条件时也可以用位操作或单独对BIT判断如:定义有BatteryStatus的FLAG,判断BatteryStatus的第四位是否为0,传统方法为:if(BatteryStatus&0x10){……}省空间方案为先定义__sbit BatteryStatus_DelayFlg = BatteryStatus:4;后面只需要判断:if(BatterySta
2021-09-04 10:08:45
582
原创 NY8B062A高性价比单片机如何进入低功耗模式?
单片机系统进入睡眠后,要保持微弱信号检测唤醒功能的一种方法就是保留定时ADC采样然后出发唤醒,这就需要在睡眠与唤醒模式之间切换,通过写如下寄存器调整时钟实现。void set_high_freq_mode(void){ OSCCR = 0x00; __asm__("NOP"); __asm__("NOP"); OSCCR = 0x01;}void set_low_freq_mode(void){ OSCCR = 0x00; __asm__("NO...
2021-09-03 23:46:22
686
nRF52调试套餐-flash工具,打包工具
2022-08-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人