ArcCore重构-Makefile模块化】的更多相关文章

基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   基本问题 2. 编译系统中代码文件是否编译及目标文件集中定义在boards/board_common.mk,而非分属各自模块:   每个模块的应当有自己的文件夹,并且有自己的Makefile.在这个Makefile文件中,根据该模块相关的配置开关,决定是否编译某些目标文件.全局范围内涉及到各模块的只有相关的配置开关.这样可以降低耦合,使代码模块化更清晰.   结构如下: 每个模块的Makefile类似如下:…
基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   基本问题 3. 编译系统中所有代码文件通过搜索路径(VPATH)中搜索,存在名称污染问题,需加入路径信息:   ArcCore的编译系统中,定义了大量的vpath-y路径,所以定义目标文件的时候,直接使用 obj-y += xxx.o . 与头文件一样,这里也存在名称污染的问题,如果两个目标文件的名称相同,则会出现问题.   解决办法即是在目标文件中加入路径信息.如: obj-y += communicat…
基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   基本问题 1. 头文件引用混乱,所有头文件通过从搜索路径(-I)中引用,存在名称污染问题,需加入路径信息:   ArcCore代码的编译系统中,定义了大量的inc-y路径,最后使用-I参数将这些路径加入到编译器的命令行参数中.而代码文件中,引用头文件时都是直接使用 #include "xxx.h" 的形式.   这样有几个问题: 1. 编译系统负担过重,需要加入大量的头文件搜索路径: 2. 导致头…
AUTOSAR定义了一系列PlatformTypes,如uint8/uint16/uint32等等基本类型. It contains all platform dependent types and symbols. Those types must be abstracted in order to become platform and compiler independent. ArcCore中实现如下: #include <stdbool.h> #include <stdint.…
基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5 基本问题   ArcCore中,需要生成asm_offset.h和arch_offset.h这两个头文件,定义着代码所需的ARCH相关的offset值. 这两个文件直接生成在object tree的顶层目录,也没什么问题. 更好的办法是把他们放到include/generated目录下.后续根据.config配置生成的autoconf.h文件也可以放到该目录下. 然后将objtree/include加入到头文件…
https://mp.weixin.qq.com/s/JX7VZwyMqk_9iVMm_N2pxA https://mp.weixin.qq.com/s/5Y8Dt9j1-NQmnjfYhE19dg   基于官方arc-stable-9c57d86f66be,AUTOSAR版本3.1.5   ArcCore中Communication Service中各层都有许多ID的配置,如Can driver中有CanObjectId, CanIf中有CANIF_ID,CanTp中又有CANTP_ID,其他…
索引 NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:https://www.bitadmincore.com 框架源码:https://github.com/chenyinxin/cookiecutter-bitadmin-core NetCore应用框架开源发布已经有一段时间,通过不断的迭代,对于框架的定位重新做一个思考,决定放弃一些原来的想法,将定位重新聚焦: 1.定位于没有自主开发框架的小团队,包括企业团队均可免费获得使用. 2.定位于后台管理模块开发,以管理…
最新发布的开源 Zephyr Project™(Zephyr 项目)是一款小型且可伸缩的实时操作系统,尤其适用于资源受限的系统,可支持多种架构:该系统高度开源,对于开发人员社区完全开放,开发人员可根据需要对该系统进行剪裁,以支持最新硬件.工具和设备驱动程序:该系统高度模块化平台,可轻松集成任何架构的第三方库和嵌入式设备. 安全性 安全性对所有物联网设备都至关重要,用户最不愿意看到的情况就是连接的设备被黑客攻击.Zephyr在设备和通信协议栈的两个层次提供安全特性,可提供一次性至永久性保护用户免受…
网站越来越庞大,JS也是越写越多. 当所有的JS 都集中在 HTML的 head 部分时,网页加载变得很慢,很多的 JS代码也并不是全都适用在当前的页面,造成了代码的冗余度非常高. 而且长长的JS代码,没有很好的将他们 模块化,对以后的维护造成极大的困难. 为此特地去了解下 require.js 的用途以及使用方法,为以后 代码重构 和 模块化 提供帮助.让后来者能更好的去管理代码. 1 为什么我要用require.js? 最近在制作个网站.引入了 <script src="static/…
伏羲八卦.文王六十四卦.老子阴阳太极.西方哲学辩证与"解耦和复用”思想的异曲同工之妙     问题:任何程序语言在遇到复杂逻辑时,代码维护难度就会加大,如何处理该问题? 答案:重构,模块化. 重构.模块化的最终趋向都是"解耦复用". 问题:那么如何理解"解耦复用"?   答案: 道可道,非常道:名可名,非常名. 无名,天地之始:有名,万物之母. 故常无,欲以观其妙:常有,欲以观其徼. 此两者,同出而异名,同谓之玄.玄之又玄,众妙之门.   本同表异的对象提…
1.Easy Explorer:打开在eclipse中选定文件所在的目录.这是一个非常不错的插件,有了它,你就可以随时跳到你指定文件的目录了.地址:http://sourceforge.net/projects/easystruts/ 2.全屏插件Eclipse Fullscreen 是一个让 Eclipse 开发工具可以全屏方式运行的插件,全屏状态下将隐去菜单栏和状态栏.在线安装地址:http://scharf.gr/eclipse/fullscreen/update/ 3.SVN插件 可以直…
Client JS: Level 1 基本对象的掌握----------------------------------------->Library(兼容)/Widget(UI+功能)---------------------------------------------------------------->Framework/Web App(兼容+UI+功能+设计模式+性能) ECMAScript DOM/BOM/AJAX/HTML5对象 ----------------------&…
ASP.NET Core 2.0 发布日期:2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Visual Studio 2017 15.3支持ASP.NET Core 2.0,提供新的Razor Pages项目模板. 详细发布信息查看.NET Core 2.0.0发布说明文档 最新版SDK下载:https://dot.net/core ASP.NET Core 2.0提供一系列新功能使得Web应用开发.发布.部署和维护变得更加容易,框架性能得到进一步提升…
<分布式服务通讯框架XXL-RPC>    一.简介 1.1 概述 XXL-RPC 是一个分布式服务通讯框架,提供稳定高性能的RPC远程服务调用功能.现已开放源代码,开箱即用. 1.2 特性 1.快速接入:接入步骤非常简洁,两分钟即可上手: 2.服务透明:系统完整的封装了底层通信细节,开发时调用远程服务就像调用本地服务,在提供远程调用能力时不损失本地调用的语义简洁性: 3.注册中心(可选):支持使用zookeeper作为服务注册中心,服务注册并动态发现.同时,也可以不使用注册中心,直接指定服务…
<分布式服务框架XXL-RPC>      一.简介 1.1 概述 XXL-RPC 是一个分布式服务框架,提供稳定高性能的RPC远程服务调用功能.拥有"高性能.分布式.注册中心.负载均衡.服务治理"等特性.现已开放源代码,开箱即用. 1.2 特性 1.快速接入:接入步骤非常简洁,两分钟即可上手: 2.服务透明:系统完整的封装了底层通信细节,开发时调用远程服务就像调用本地服务,在提供远程调用能力时不损失本地调用的语义简洁性: 3.多调用方案:支持 SYNC.ONEWAY.FU…
Net Core 2.0生态 阅读目录 前言:答读者问(time by:2017.8.19) 项目升级到ASP.NET Core 2.0 新增功能:Razor Pages介绍 模板更新 Entity Framework Core 2.0提供DbContext池 监视器.无代码更改配置.应用程序监视器 Razor支持C# 7.1 简化应用程序的主机配置 总结 ASP.NET Core 2.0 发布日期:2017年8月14日 ASP.NET团队宣布ASP.NET Core 2.0正式发布,发布Vis…
1.请运行下面code,指出其功能: (需附运行结果截图,并用简短文字描述其功能) 显示了人的姓名.年龄 2.请将该code进行代码重构,使之模块化,并易于阅读和维护: 3.观看视频The Expert (Short Comedy Sketch),写出观后感(内容是什么,说明了什么问题,有什么启示),提交到博客! The Expert (Short Comedy Sketch)内容是:一个工程师在一群完全什么技术都不懂的CEO,产品经理和设计师面前…… 说明了什么问题,有什么启示: 看了这个视频…
本文摘自http://blog.csdn.net/lufeiop02/article/details/6446343 Linux驱动一般以模块module的形式来加载,首先需要把驱动编译成模块的形式.简单的例子, #include <linux/init.h> #include <linux/kernel.h> #include <linux/module.h> static int __init test_init(void) { printk("init…
一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就更别说会知道js还有面向对象,设计模式,MVC,MVVM,模块化,构建工具等等这些高大上的概念了.现在想想还真是Too young too naive.前两天某大神在群里分享他招聘前端的心得的时候就说,就是那些以为能写两个页面就可以自称前端的人拉低了行业水平.这样看来前两年我还真的扯了不少后腿呢………
经过近20年的发展,Java语言已成为今日世界上最成功.使用的开发者人数最多的语言之一,Java世界中无数商业的或开源的组织.技术和产品共同构成了一个无比庞大的生态系统. 与大多数开发人员的普遍认知不同,Java的生态系统和演进路线并不是由Sun Microsystems公司来决策和管理的.虽然Sun公司拥有“JavaTM”这个商标的所有权,并且拥有Java中使用最广泛的HotSpot虚拟机和Sun JDK,但它并不能直接制定Java世界中的规则.确定Java技术的发展走向. 1998年,在Su…
最近两周完成了对公司某一产品的前端重构,本文记录重构的主要思路及相关的设计内容. 公司期望把某一管理类信息系统从项目代码中抽取.重构为一个可复用的产品.该系统的前端是基于 ExtJs 5 进行构造的,后端是基于 Asp.net MVC 提供的 REST 数据接口.同时,希望通过这次重构,不但能将其本身重构至可用于快速二次开发的产品,同时还要求该前端代码要保证相对的独立,使得同时可以接入 .NET 和 JAVA 两个不同的后端平台所提供的数据接口.   旧代码的问题 老系统的前端代码如下图所示:…
前言 不知不觉来百度已有半年之久,这半年是996的半年,是孤军奋战的半年,是跌跌撞撞的半年,一个字:真的是累死人啦! 我所进入的团队相当于公司内部创业团队,人员基本全部是新招的,最初开发时连数据库都没设计,当时评审需求的时候居然有一个产品经理拿了一份他设计的数据库,当时我作为一个前端就惊呆了...... 最初的前端只有我1人,这事实上与我想来学习学习的愿望是背道而驰的,但既然来都来了也只能独挑大梁,马上投入开发,当时涉及的项目有: ① H5站点 ② PC站点 ③ Mis后台管理系统 ④ 各种百度…
var define, require, define2, require2; typeof JSON != "object" && (JSON = {}), function () { "use strict"; function i(n) { return n 缘由 在2013-03-06 13:58的时候,曾甩下一片文章叫:<为什么不使用requirejs和seajs>,并放下豪言说发布一款完美的模块化库,再后来就把那篇文章删了,再…
模块化是现今我们随处都可以听到的一个名词,什么是模块化?为什么我们需要模块化?这是本系列文章我们要弄明白的一个问题.我们也借这部分内容,顺带回顾一下前端的发展历程. 说实话,模块化这个主题有点大,我一时也不知道从哪里讲起比较合适,通常来说,前端的工作内容主要涉及三个方面:html.css.js(javascript),其他的像as(actionscript,flash的脚本语言).jsp.smarty等等模版类的语法标记我们在此就先略去了,因为不是特别重要.那我们所说的模块化也可以分别当成这三条…
作者:@狼狼的蓝胖子 网址:http://www.cnblogs.com/lrzw32/p/5100745.html 写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多,如果没有及时对CSS代码进行维护,CSS代码不断会越来越多.CSS代码交错复杂,像一张庞大的蜘蛛网分布在网站的各个位置,你不知道修改这行代码会有什么影响,所以如果有修改或增加新功能时,开发人员往往不敢去删除旧的冗余的代码,而保险地增加新代码,最终的坏处就是项目中的CSS会越来越多,最终陷入无底洞.…
项目开发从来就不是一个简单的问题.更难的问题是维护其他人开发的项目,并且要修改bug.如果原系统有重大问题还需要重构. 怎么重构系统不是本文探讨的问题,但是重构后如何上线部署和本文关系密切.这个大家可能刚兴趣. 言归正传,现在演示一下如果做到部分版本和部分模块更新. Asp.net Mvc模块化开发系列目录 1. Asp.net MVc模块化开发之分区扩展框架(送源码) 2. Asp.net Mvc模块化开发之“开启模块开发.调试的简单愉快之旅” 3. Asp.net Mvc模块化开发之“逻辑(…
上文回顾:Hybird框架UI重构之路:三.工欲善其事,必先利其器 上一篇文章有说到less.grunt这两个工具,是为了css.js分模块使用的.UI框架提供给使用者的时候,是一个大的xxx.js.xxx.css,但在开发时候,必须划分模块. CSS模块划分 1.variables.less 这里面是一些样式的变量.函数 例: 字体: @baseFontSize: 20px; 圆角: .rounded-corners (@radius: 5px) { border-radius: @radiu…
1 概述 Makefile由五个部分组成: Makefile:根目录Makefile,它读取.config文件,并负责创建vmlinux(内核镜像)和modules(模块文件). .config:内核配置文件(一般由make menuconfig生成). arch/$(ARCH)/Makefile:目标处理器的Makefile. scripts/Makefile.*:所有kbuild Makefile的规则,它们包含了定义/规则等. kbuild Makefiles:每个子目录都有kbuild…
原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]本文地址:http://www.zhangxinxu.com/wordpress/?p=1152 一.关于“鑫三无准则” “鑫三无准则”这个概念早在去年我写“关于Google圆角高光高宽自适应按钮及其拓展”一文时就已经提到了.这是自己在页面重构的经验中总结出来的一套约束自己CSS的准则,即“无宽度”.“无图片”和“无浮动”,目的是使CSS布局模块化以及增强可扩展性. 此准则是针对我个人的,可能没有…
随着 PHP 从一种简单的脚本语言转变为一种成熟的编程语言,一个典型的 PHP 应用程序的代码库的复杂性也随之增大.为了控制对这些应用程序的支持和维护,我们可以使用各种测试工具来自动化该流程.其中一种是单元测试,它允许您直接测试所编写代码的正确性.然而,通常遗留代码库是不适合进行这种测试的.本文将介绍对包含常见问题的 PHP 代码的重构策略,以便简化使用流行的单元测试工具进行测试的过程,同时减少改进代码库的依赖性. 简介 回顾 PHP 15 年的发展历程,我们发现它已经从一个简单的用来替代当时流…