2009 -> 2010

不知不觉又过去了一年。一年又一年,一年又一年。人生能有多少个一年啊?呵呵。

我还清晰的记得去年的这个时候,我在博客上对前年进行了总结,并对去年进行了展望。今天,又来总结和展望了。

先对2009年进行总结。

09年对于我来说最大的事件——换了工作。换工作的原因,不是因为薪水,也不是因为职位,而是感觉在前公司里做的事情不利于我以后的发展。
在前公司里,我确实学到了很多。离职前,我已经能够同时负责三个项目的开发了,感觉也不费劲,基本应付自如。这个让我对于软件工程的理解,对于项目流程规范的理解,对于项目管理的理解都有了一定的提升。语言方面,我也能够基本阅读日文邮件和文档了。虽然工作得心应手,但是由于我的工作和我的发展愿望相差很大,我还是选择离开了。我的目标,起码到现在为止,还是希望能够做些欧美项目,做技术,而不做管理。
在新的公司,和我入职前想象的不太一样。一个是没有任何流程可言,流程比较随意;一个是我所在的组没有欧美同事,所以没有我期待的英语环境。但是,也有我需要的。一个是开始做J2EE的项目,这让我学到了很多以前没有接触过的技术,这对于我一心想一直将Java做下去的人来说,很有好处;另一个,是公司里的同事很多都是有10年左右工作经验的,像我这样3、4年工作经验的都是最少的,他们技术方面都比较牛,和他们接触,也学到很多东西。
除了换工作以外,其他的都比较平稳,没什么特别的。就是感觉身体不如以前了,总觉得累,以前没有这样,呵呵。

再对2010年进行展望。

英语口语。我都有点不好意思再写这个了。真的是年年失望年年望啊。怎么就找不到英语环境呢?看来还得自己想办法。
继续做Java。我想至少要做10年才能算Java专家吧。我至少还需要再做5年,才接近10年。
如果能够找到一个有发展的领域就更好了,想做技术,就必须有一个领域作为平台。不过这个不强求,因为找到一个领域真的很困难,需要机会,也需要有眼光。

// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2010 * Linaro LTD, www.linaro.org * Author: John Rigby <john.rigby@linaro.org> * Based on TI's signGP.c * * (C) Copyright 2009 * Stefano Babic, DENX Software Engineering, sbabic@denx.de. * * (C) Copyright 2008 * Marvell Semiconductor <www.marvell.com> * Written-by: Prafulla Wadaskar <prafulla@marvell.com> */ #include "imagetool.h" #include <compiler.h> #include <image.h> #include "gpheader.h" #include "omapimage.h" #define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) /* Header size is CH header rounded up to 512 bytes plus GP header */ #define OMAP_CH_HDR_SIZE 512 #define OMAP_FILE_HDR_SIZE (OMAP_CH_HDR_SIZE + GPIMAGE_HDR_SIZE) static int do_swap32 = 0; static uint8_t omapimage_header[OMAP_FILE_HDR_SIZE]; static int omapimage_check_image_types(uint8_t type) { if (type == IH_TYPE_OMAPIMAGE) return EXIT_SUCCESS; return EXIT_FAILURE; } static int omapimage_verify_header(unsigned char *ptr, int image_size, struct image_tool_params *params) { struct ch_toc *toc = (struct ch_toc *)ptr; struct gp_header *gph = (struct gp_header *)(ptr+OMAP_CH_HDR_SIZE); uint32_t offset, size; while (toc->section_offset != 0xffffffff && toc->section_size != 0xffffffff) { if (do_swap32) { offset = cpu_to_be32(toc->section_offset); size = cpu_to_be32(toc->section_size); } else { offset = toc->section_offset; size = toc->section_size; } if (!offset || !size) return -1; if (offset >= OMAP_CH_HDR_SIZE || offset+size >= OMAP_CH_HDR_SIZE) return -1; toc++; } return gph_verify_header(gph, do_swap32); } static void omapimage_print_section(struct ch_settings *chs) { const char *section_name; if (chs->section_key) section_name = "CHSETTINGS"; else section_name = "UNKNOWNKEY"; printf("%s (%x) " "valid:%x " "version:%x " "reserved:%x " "flags:%x\n", section_name, chs->section_key, chs->valid, chs->version, chs->reserved, chs->flags); } static void omapimage_print_header(const void *ptr) { const struct ch_toc *toc = (struct ch_toc *)ptr; const struct gp_header *gph = (struct gp_header *)(ptr+OMAP_CH_HDR_SIZE); uint32_t offset, size; while (toc->section_offset != 0xffffffff && toc->section_size != 0xffffffff) { if (do_swap32) { offset = cpu_to_be32(toc->section_offset); size = cpu_to_be32(toc->section_size); } else { offset = toc->section_offset; size = toc->section_size; } if (offset >= OMAP_CH_HDR_SIZE || offset+size >= OMAP_CH_HDR_SIZE) exit(EXIT_FAILURE); printf("Section %s offset %x length %x\n", toc->section_name, toc->section_offset, toc->section_size); omapimage_print_section((struct ch_settings *)(ptr+offset)); toc++; } gph_print_header(gph, do_swap32); } static int toc_offset(void *hdr, void *member) { return member - hdr; } static void omapimage_set_header(void *ptr, struct stat *sbuf, int ifd, struct image_tool_params *params) { struct ch_toc *toc = (struct ch_toc *)ptr; struct ch_settings *chs = (struct ch_settings *) (ptr + 2 * sizeof(*toc)); struct gp_header *gph = (struct gp_header *)(ptr + OMAP_CH_HDR_SIZE); toc->section_offset = toc_offset(ptr, chs); toc->section_size = sizeof(struct ch_settings); strcpy((char *)toc->section_name, "CHSETTINGS"); chs->section_key = KEY_CHSETTINGS; chs->valid = 0; chs->version = 1; chs->reserved = 0; chs->flags = 0; toc++; memset(toc, 0xff, sizeof(*toc)); gph_set_header(gph, sbuf->st_size - OMAP_CH_HDR_SIZE, params->addr, 0); if (strncmp(params->imagename, "byteswap", 8) == 0) { do_swap32 = 1; int swapped = 0; uint32_t *data = (uint32_t *)ptr; const off_t size_in_words = DIV_ROUND_UP(sbuf->st_size, sizeof(uint32_t)); while (swapped < size_in_words) { *data = cpu_to_be32(*data); swapped++; data++; } } } /* * omapimage parameters */ U_BOOT_IMAGE_TYPE( omapimage, "TI OMAP CH/GP Boot Image support", OMAP_FILE_HDR_SIZE, (void *)&omapimage_header, gpimage_check_params, omapimage_verify_header, omapimage_print_header, omapimage_set_header, NULL, omapimage_check_image_types, NULL, NULL ); 是legacy吗
11-08
status_t AudioMTKGainController::ApplyMicGain(GAIN_MIC_MODE _micMode, GAIN_DEVICE _gainDevice, audio_mode_t _mode) { 1994 if (mSceneIndex < 0 || _micMode < 0 || _gainDevice < 0 1995 || mSpec->ulHwPgaIdxMax == 0) { 1996 ALOGE("%s(), invalid value, mSceneIndex %d, _micMode %d, mBand %d, mNetwork %d, _gainDevice %d, mSpec->ulHwPgaIdxMax %d return", 1997 __FUNCTION__, mSceneIndex, _micMode, mBand, mNetwork, _gainDevice, mSpec->ulHwPgaIdxMax); 1998 ASSERT(mSpec->ulHwPgaIdxMax != 0); 1999 return BAD_VALUE; 2000 } 2001 2002 GainTableMicUnit *micUnit = _micMode == GAIN_MIC_VOICE_CALL ? 2003 &mGainTable.nonSceneGain.speechMicGain[mBand][mNetwork][_gainDevice] : 2004 &mGainTable.sceneGain[mSceneIndex].micGain[_micMode][_gainDevice]; 2005 2006 /* total mic gain */ 2007 uint8_t index = mSpec->micIdxMax[_gainDevice] - micUnit->gain[MIC_IN_CH0]; 2008 mULTotalGain = UPLINK_GAIN_MAX - (index * UPLINK_ONEDB_STEP); 2009 2010 /* sw mic gain use ch0 */ 2011 mHwVolume.swAgc = isDmicDevice(_gainDevice) ? 2012 mSpec->swagcGainMapDmic[_gainDevice][index] : 2013 mSpec->swagcGainMap[_gainDevice][index]; 2014 if (isInVoiceCall(_mode)) { 2015 ApplyMdUlGain(mHwVolume.swAgc); 2016 } 2017 2018 if (_gainDevice == GAIN_DEVICE_USB || _gainDevice == GAIN_DEVICE_BT) 2019 return NO_ERROR; 2020 2021 /* hw mic gain of ADC */ 2022 for (int ch = 0; ch < TOTAL_MIC_IN_CHANNEL; ch++) { 2023 if (mSpec->ulPgaMixerName[ch].length() == 0) { 2024 continue; 2025 } 2026 index = mSpec->micIdxMax[_gainDevice] - micUnit->gain[ch]; 2027 uint8_t adcGain = (mSpec->ulPgaGainMapMax - mSpec->ulPgaGainMap[_gainDevice][index]) / mSpec->ulHwPgaIdxMax; 2028 setAdcPga(ch, adcGain); 2029 } 2030 #ifdef MTK_ULTRASOUND_PROXIMITY_SUPPORT 2031 AudioALSAUltrasoundOutOfCallController::getInstance()->updateAnalogGain(); 2032 #endif 2033 return NO_ERROR; 2034 } 2035 2036 uint32_t AudioMTKGainController::GetMicGain(void) { 2037 struct mixer_ctl *ctl; 2038 unsigned int num_values, i ; 2039 uint32_t index = 0; 2040 2041 ctl = mixer_get_ctl_by_name(mMixer, mSpec->ulPgaMixerName[MIC_IN_CH0].c_str()); 2042 num_values = mixer_ctl_get_num_values(ctl); 2043 for (i = 0; i < num_values; i++) { 2044 index = mixer_ctl_get_value(ctl, i); 2045 ALOGD("%s() i = %d index = %d ", __FUNCTION__, i, index); 2046 } 2047 return index; 2048 }
09-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值