2012年10月28日
摘要: 最近看了许多论文,有一些概念本来也无关紧要,但是看得多了也就自然而然的懂了,在这里分享给大家。1. Transaction、Journal和Magazine的区别Transactions我们最熟悉的意思是事务,而它还有一个意思被称为“议事录”。一般情况下是某个专业或者学会的议事录,比如:IEEE Transactions on Aerospace and Electronic Systems。Transaction中的文章对于相关背景的介绍比较少,相关理论也会少一点。Journal就是期刊的意思,里面的文章对相关背景的介绍会多一些,而且理论深度比较深,因此看起来比较厉害。例如:IEEE/OSA 阅读全文
posted @ 2012-10-28 21:21 chrihop 阅读(16376) 评论(0) 推荐(0) 编辑
  2012年6月22日
摘要: 状态机模式是一种行为模式,在《设计模式》这本书中对其有详细的描述,通过多态实现不同状态的调转行为的确是一种很好的方法,只可惜在嵌入式环境下,有时只能写纯C代码,并且还需要考虑代码的重入和多任务请求跳转等情形,因此实现起来着实需要一番考虑。 近日在看了一个开源系统时,看到了一个状态机的实现,也学着写了一个,与大家分享。 首先,分析一下一个普通的状态机究竟要实现哪些内容。 状态机存储从开始时刻到现在... 阅读全文
posted @ 2012-06-22 12:17 chrihop 阅读(17637) 评论(3) 推荐(5) 编辑
  2012年4月14日
摘要: 编程珠玑8.4节讲扫描算法,我看了半天都没看明白,最后自己写了一遍,终于搞懂了,把它记下来,以免今后忘了。首先,书上的算法是这样写的:maxsofar = 0maxendinghere = 0for i=[0 n) maxendinghere = max(maxendinghere + x[i], 0) maxsofar = max(maxsofar, maxendinghere)这个max so far和max ending here究竟表示什么呢?先来看我写的程序的输出:输入:{31, -41, 59, 26, -53, 58, 97, -93, -23, 84}输出:其中Accu就是ma 阅读全文
posted @ 2012-04-14 12:01 chrihop 阅读(746) 评论(0) 推荐(0) 编辑
  2012年4月8日
摘要: 排列组合是算法常用的基本工具,如何在c语言中实现排列组合呢?思路如下: 首先看递归实现,由于递归将问题逐级分解,因此相对比较容易理解,但是需要消耗大量的栈空间,如果线程栈空间不够,那么就运行不下去了,而且函数调用开销也比较大。 (1) 全排列: 全排列表示把集合中元素的所有按照一定的顺序排列起来,使用P(n, n) = n!表示n个元素全排列的个数。 例如:{1, 2, 3}的全排列为: ... 阅读全文
posted @ 2012-04-08 17:44 chrihop 阅读(23228) 评论(5) 推荐(3) 编辑
摘要: 作为C++语言的亮点与精髓,指针一直是备受人们追捧和病诟的东西。不知道有多少精巧的代码是通过它实现的,也不知道有多少难缠的bug是由它引发的,这篇文章先对指针做一个全局的总结,从声明、赋值、调用和实现机制上对所有指针做一个说明,希望对大家有所帮助。在后续的文章中,我将给出那些使用指针的技巧。 首先是一个列表,列出我们今天讨论的内容: 指向基本数据类型的指针 ... 阅读全文
posted @ 2012-04-08 17:15 chrihop 阅读(3475) 评论(2) 推荐(2) 编辑
  2011年10月29日
摘要: 这几天学着用C++ 模版(Genetic programming)写程序,碰到一个很纠结的问题。描述如下: 通常情况下,我喜欢重载operator<<()用来输出类内部的信息,以方便调试。例如: class A{public: A(string value): data(value){} friend ostream& operator<< (ostream & out, const A& m... 阅读全文
posted @ 2011-10-29 16:52 chrihop 阅读(3126) 评论(2) 推荐(3) 编辑
  2011年10月16日
摘要: 在学习c++时,我喜欢写一些小程序,以验证某个想法的正确与否。这些小程序通常只有一两个cpp文件和几个头文件,用Visual Studio提供的cl.exe直接在命令行中编译很方便,但是如果要调试或者只是看一下运行时的反汇编信息,就比较痛苦了。 windbg看似可以解决这个问题,但是使用起来极不习惯,而建一个vs solution或者project又太麻烦了,还要消耗大约10MB的磁盘空间用来存... 阅读全文
posted @ 2011-10-16 15:38 chrihop 阅读(1998) 评论(1) 推荐(0) 编辑
  2011年10月9日
摘要: 在C++中,函数返回整数或指针是通过eax寄存器进行传递的,理解起来比较简单。 但是返回对象或结构体一直是令人感到困惑的问题。今天我整理了一下,将整个返回过程写下来,以作备用。 还是先通过一个例子来理解这个问题: 首先,定义一个类Vector: class Vector{public: int x,y;};然后定义函数add()对Vector对象进行操... 阅读全文
posted @ 2011-10-09 20:39 chrihop 阅读(4667) 评论(0) 推荐(3) 编辑
  2010年3月17日
摘要: 本文介绍RTE的运行体。 An AUTOSAR component defines one or more "runnable entities". A runnable entityis a piece of code with a single entry point and an associate set of data. A softwarecomponentdescription p... 阅读全文
posted @ 2010-03-17 16:08 chrihop 阅读(4931) 评论(1) 推荐(1) 编辑
摘要: 任务管理 任务的安装 任务有两种安装方法: single instantiation – which refers to the case where only one object or AUTOSAR software component instance will be derived out of the AUTOSAR software component descri... 阅读全文
posted @ 2010-03-17 16:02 chrihop 阅读(5956) 评论(0) 推荐(0) 编辑