hw8max怎么打电话

hw8max怎么打电话,第1张

1、首先我们可以通过按压手表上键,进入到应用列表里。
2、进入点击电话的图标。
3、打开电话页面之后,我们再继续点开拨号盘。
4、进入拨号盘页面后,我们可以直接输入电话号码,点击电话的图标。这样就可以拨打电话出去啦。

您好,每款软件都是有其硬件和软件运行需求的,建议您可以根据游戏的说明书查看下机器的硬件和软件方面是否符合其流畅运行要求,如果符合那么机器是可以正常运行这款程序的,您重装一下显卡驱动试试,然后切换为独立显卡;如果不符合建议您可以根据游戏的需求配置适合机器的软硬件即可流畅的运行相应的程序,如果您有关于相应游戏的其他问题咨询,建议您可以直接联系该款软件的技术部进行咨询。

6063铝合金T1处理的屈服强度:90MPa,硬度:42HBT5处理的屈服强度:175MPa,硬度:60HBT6处理的屈服强度:210MPa,硬度:73HBT832处理的屈服强度:240MPa,硬度:95HB10HW对应的强度大致是120MPa,13HW对应的强度大致是27

1. makefile
MXX_GPRSmak(mcu\make)
Optionmak(mcu\make)

对于同一个平台,不同的项目有着不同的功能配置。对于驱动调试来说,需要修改和添加一些宏开关控制;

基本格式和步骤:
MXX_GPRSmak :
XXX_XXX = XXX
XXX_XXX = NONE
XXX_XXX = TRUE
XXX_XXX = FALSE

Optionmak:

ifdef XXX_XXX
ifneq ($(strip $( XXX_XXX)),FALSE)
COM_DEFS += XXX_XXX
endif
endif

代码中就使用XXX_XXX来控制相关代码
#if defined(XXX_XXX)
//add code here
#endif
Custominfopl(mcu\tools)
这个文件是当在mcu\custom\drv下添加与LCD,image_sensor等类似的模块时,需要修改此文件以便ADS编译系统能编译到此模块下的文件;
可以参考image_sensor。
if (($project ne "basic") && ($project ne "l1s") && defined($cmos_sensor)) {
if ($cmos_sensor ne "NONE") {
push(@thatdirs, "drv\\image_sensor\\$cmos_sensor");
}
}
2 LCM;Backlight;Vibrator
以SUNRISE_0255_LCM为例
步骤1:
MXX_GPRSmak中配置LCD_MODULE和MAIN_LCD_SIZE;
LCD_MODULE = SUNRISE_0255_LCM
MAIN_LCD_SIZE = 240X320

Optionmak中加入:
COM_DEFS_FOR_SUNRISE_0255_LCM = SUNRISE_0255_LCM HX8312 COLOR_LCD TFT_MAINLCD QVGA_MAINLCD
其中HX8312为LCD的型号;
COLOR_LCD,TFT_MAINLCD,QVGA_MAINLCD为LCD的类型
QVGA_MAINLCD:240X320
QCIF_MAINLCD: 176X220
QQVGA_MAINLCD: 120X160

如在SUNRISE_0255_LCM的基础上添加兼容屏;则在HX8312后面顺序加入LCD的型号
如果有Sub LCD;则需要顺序加入DUAL_LCD;COLOR_SUBLCD以及型号名称;
步骤2:
Mcu\custom\drv\LCD目录下添加SUNRISE_0255_LCM模块;目录以SUNRISE_0255_LCM为名。
可以参考其他LCM;加入和修改5个文件分别为:
lcdc
lcd_hwh
lcd_swh
lcd_sw_inch
lcd_sw_rndh

lcdc:实现LCD的驱动接口
一般有init; sleep in;sleep out; block write等
lcd_hwh: 一般不需要修改;
lcd_swh: 配置data address;command address和output format;
lcd_sw_inch:配置LCD WIDTH和HEIGHT;
lcd_sw_rndh: 一般不需修改;

步骤3:
加入背光控制代码;
Mcu\custom\drv\misc_drv\custom_equipmentc
kal_bool custom_cfg_gpio_set_level(kal_uint8 gpio_dev_type, kal_uint8 gpio_dev_level )
{
//用SUNRISE_0255_LCM来控制代码
}

GPIO模式和PWM模式;(函数默认是PWM模式)
如果是GPIO模式;则在上述函数中加入模拟代码;
如果是PWM模式;则需要根据实际情况在Mcu\custom\drv\misc_drv\custom_hw_defaultc文件中修改PWM1_Level_Info;即频率和占空比;

另外在mcu\plutommi\mmi\gpio\gpioSrc\GeneralDeviceInterfacec中有详细的MMI对背光的控制代码;

另外还需熟悉lcd_ifc(mcu\drv\src)对上述接口的调用;
3.Camera module;Sensor
外挂DSP暂不讨论;以OV9650为例:
步骤1:
MXX_GPRSmak中配置ISP_SUPPORT和CMOS_SENSOR;
ISP_SUPPORT = TRUE
CMOS_SENSOR = OV9650
CAMERA_PIXEL = ONE_MEGA_PIXEL
注:(一般30万象素可以插值到100万;130万可以插值到200万象素)

步骤2:
Mcu\custom\drv\image_sensor下添加OV9650目录;
添加或修改文件:
camera_hwc:Module Power on/off 控制;(GPIO分配要看硬件的资源分配表)
camera_parac: ISP、Sensor相关寄存器配置;在实际调试中对比效果来修改;
image_sensorc:timing;sensor init;power on/off;preview;capture等接口实现;
image_sensorh:有关sensor一些属性设置(一些宏定义);
camera_infoc: 一般不需修改;

在完成所有的功能之后;效果调试是主要工作;
主要工具:META;CCT等;
关于ISP Address可参考MTK平台的DataSheet;

步骤3:
需对以下目录的文件有一定的了解!
media\camera\;
media\video\;
plutommi\mtkapp\Camera\
plutommi\mtkapp\Video\
plutommi\mtkapp\MDI\
对于特定项目的键盘的定义和映射以及其他一些特殊的处理;代码用PHONE_TYPE和PLATFORM_NAME的组合来控制;
如 PHONE_TYPE = SLIDE
PLATFORM_NAME = M678

则代码控制如下:
custom\drv\misc_drv\M678_BB\keypad_defc
const keypad_struct keypad_custom_def = {
#if defined(__PHONE_SLIDE__) //滑盖机型
#if defined(__SLIDE_M678)
//add m678 keypad define here
//ROW 0(第一列)
DEVICE_KEY_XX,
……
//ROW 1(第二列)
……
//
……
#else
#endif
#elif defined(__PHONE_BAR__) //直板机型
//
#elif defined(__PHONE_SPIN) //旋转机型
//
#elif defined(__PHONE_CLAMSHELL) //翻盖机型
//
#endif
};

如果除了平台提供的基本的按键外还需添加特定的按键定义;则除了上述外还需修改以下几处:
interface\hwdrv\kbd_tableh
定义DEVICE_KEY_XX;注意顺序
#define DEVICE_KEY_XX 顺序值

plutommi\mmi\Framework\Osl\OslSrc\KeyBrdc
假设DEVICE_KEY_XX为特定的按键
//定义特定的按键
const U16 PresentAllKeys[]=
{
KEY_0,
KEY_1,
KEY_2,
KEY_3,
KEY_4,
KEY_5,
……
//定义特定的按键
#if defined(__SLIDE_M678)
,KEY_XX
#endif
};
//键盘映射(注意加入顺序要与PresentAllKeys[]一致)
static const KeyPadMap nKeyPadMap[] = {
{DEVICE_KEY_0, KEY_0, KEY_TIMER_ID0, TONE_DTMF_0, DEVICE_AUDIO_PLAY_INFINITE},
{DEVICE_KEY_1, KEY_1, KEY_TIMER_ID1, TONE_DTMF_1, DEVICE_AUDIO_PLAY_INFINITE},
……
……
//映射特定的按键
#if defined(__SLIDE_M678)
{DEVICE_KEY_XX, KEY_XX, KEY_TIMER_IDXX, TONE_DTMF_1, DEVICE_AUDIO_PLAY_INFINITE},
#endif
};
//定义TIMER ID;即KEY_TIMER_IDXX
plutommi\mmi\Inc\TimerEventsh
顺序加入KEY_TIMER_IDXX;

另外在drv\src\kbdmainc
中可以修改debounce time; Long press Time; Repeat Time等参数来满足特殊的需要;
5.耳机检测;线控
custom\drv\misc_drv\M678_BB\auxmainc
对于耳机检测;一般只需关心AUX_EINT_NO(一般平台默认)和SENDKEY_ADC(见auxmainc);
可根据硬件的实际情况作一些相关的调整;

对于线控来说;需要配置REMOTE_EINT_NO、 REMOTE_ADC以及按键Press/Release对应的ADC值;
具体的处理过程可参考26平台__LINE_CONTROL_EARPHONE_SUPPORT__控制的代码;
6.ADC
MT6226平台可用资源ADC0-ADC6;

以线控为例,介绍一下修改或者添加流程:
interface\hwdrv\Bmth
typedef enum {
vbat_adc_channel=0,
visense_adc_channel,
vbattmp_adc_channel,
……
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
remote_adc_channel,
#endif
……
} adc_channel_type;

custom\drv\misc_drv\M678_BB\adc_channelc
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
const kal_uint8 ADC_REMOTE=6; //假设硬件接ADC6
#endif

kal_uint8 custom_adc_get_channel(adc_channel_type type)
{
Switch(type)
{
………
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
case remote_adc_channel:
return ((kal_uint8)ADC_REMOTE);
#endif
………
}
#endif
};

custom\drv\misc_drv\M678_BB\auxmainc
void aux_task_main( task_entry_struct task_entry_ptr )
{
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
kal_uint8 remote_adc_logic_id;
kal_uint8 remote_adc_no
#endif
……
……
//创建
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
remote_adc_no = custom_adc_get_channel(remote_adc_channel)
remote_adc_logic_id = adc_sche_create_object(MOD_AUX, remote_adc_no,40,1, KAL_TRUE);
#endif
……
while(1)
{
receive_msg_ext_q(task_info_g[task_entry_ptr->task_indx]task_ext_qid, &current_ilm);
switch(current_ilmmsg_id)
{
……
//读ADC
case MSG_ID_READ_ALL_ADC_CHANNEL_REQ:
……
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
aux_read_adc_channel(remote_adc_logic_id);
#endif
……
break;
……
//销毁
case MSG_ID_BMT_ADC_MEASURE_DONE_CONF:
……
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
else if (mea_done_ptr->adc_sche_id == remote_adc_logic_id)
{
adc_measure_count++;
remote_value = (kal_int32)mea_done_ptr->volt;
aux_remove_adc_channel(remote_adc_logic_id);
}
#endif
……
}
}
}
CLAMSHELL中断的REGISTOR可以在上述函数中添加
7.EINT
关于EINT的描述请参考平台的datasheet;
以线控为例,介绍一下修改或者添加流程:

interface\hwdrv\Einth:
typedef enum
{
……
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
remote_eint_chann,
#endif
……
} eint_channel_type;

custom\drv\misc_drv\M678_BB\Eint_defc
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
const kal_uint8 REMOTE_EINT_NO=3; //假设硬件配置为EINT3
#endif

kal_uint8 custom_eint_get_channel(eint_channel_type type)
{
switch(type)
{
……
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
case remote_eint_chann:
return ((kal_uint8)REMOTE_EINT_NO);
#endif
……
}
}

custom\drv\misc_drv\M678_BB\auxmainc
//中断处理函数
void REMOTE_EINT_HISR(void)
{
if (remote_state) //高电平
{
//相关处理代码
}
else//低电平
{
//相关处理代码
}
}
//中断注册
void aux_task_main( task_entry_struct task_entry_ptr )
{
kal_uint8 remote_eint_no;
……
#if defined(__LINE_CONTROL_EARPHONE_SUPPORT__)
remote_eint_no = custom_eint_get_channel(remote_eint_chann);
EINT_Registration(remote_eint_no,KAL_TRUE,remote_state,REMOTE_EINT_HISR, KAL_TRUE);
#endif
……
}
在注册中断时要注意:
中断触发方式:电平触发/边沿触发?
debounce: Enable/Disable?
电平触发高电平有效还是低电平有效等问题。

对于Eint0 - Eint3;可以通过下面的文件来修改debounce time;而Eint4 - Eint7没有debounce机制
custom\drv\misc_drv\M678_BB\Eint_defc
kal_uint8 custom_eint_sw_debounce_time_delay[EINT_MAX_CHANNEL] =
{
50, /EINT0/
25, /EINT 1/
50, /EINT2/
50 /EINT3/
};
单位:50ms

也可通过下述方法来修改
EINTaddr()
EINT_Set_HW_Debounce()
EINT_SW_Debounce_Modify()
等函数来修改
8 Charger/USB
可参考Customer_BMT_V01pdf
相关文件:
custom\drv\misc_drv\M678_BB\chr_parameterc 关注点:
bmt_customized_struct bmt_custom_chr_def[] = {};
此为充电相关电压和电流的设置;
static const kal_int32 chr_usb_detect_volt;
此为CHARGER/USB检测的电压值;

Mcu\bmt\
Mcu\drv\src\pwicc
9.Touch panel
custom\drv\misc_drv\M678_BB\touch_panel_customc
custom\drv\misc_drv\M678_BB\touch_panel_customh

custom\drv\misc_drv\M678_BB\touch_panel_spic
custom\drv\misc_drv\M678_BB\touch_panel_spih
drv\src\touch_panelc
drv\src\touch_panel_mainc
修改点包括:
GPIO分配;ADC值;坐标值;中断配置;压力检测等
具体修改可参考代码;
10 AFE
custom\audio\M678_BB\afec(模拟开关、PA切换等)
custom\audio\M678_BB\audcoeffc(FIR Input/Output参数)
custom\audio\M678_BB\nvram_default_audioc(GAIN值)
l1audio\afe2c (AFE管理代码)

以上根据硬件给出的数据来进行调整!
11.Task
如何在MTK平台使用Task?
以DMB项目为例;请参照下述文件;DMB_SUPPPORT控制
custom\system\M678_BB\custom_configc
custom\system\M678_BB\custom_configh
custom\drv\DMB\TCC78X\dmb_hwc

12 Nor/Nand Flash; T-Flash
添加新的NAND:
Drv\src\NAND_MTDc
static const flash_list NAND_ID_Table[] =
{
//{ ID, planesize in MB, blocksize in KB, pagesize in B, address cycle, IO bus width, mtd sub driver}

//添加新的NAND的相关信息(参考芯片Spec)
}
DA(Download Agent)部分代码(一般不需修改)
DA_SRC\src\nand_dev_tblc
Const NAND_Device_S g_NandFlashDevTbl[] =
{
//加入新的NAND信息(参考芯片Spec)
};
添加新的Nor Flash
DA_SRC\src\flash_dev_tblc
Const Nor_Device_S g_FlashDevTbl[] =
{
//加入新的Nor信息(参考芯片Spec)
};

对于DA的修改;需重新生成DA文件用于Flash Download Tool


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12776076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-27
下一篇 2023-05-27

发表评论

登录后才能评论

评论列表(0条)

保存