《Linux内核驱动模块编程指南》最初是由 Ori Pomerantz为22版本的内核编写的,后来,ori将文档维护的任务交给了 Peter Jay Salzman,Peter完成了24内核版本文档的編写,毕竟Lnux内核驱动模块是一个更新很快的内容。现在,Peter也无法腾出足够的时间来完成2.6内核版本文档的编写,目前该2.6内核版本的文档由合作者 Michael Burian完成版本和注意Linux内核模块是一块不断更新进步的内容,在 LKMPG上总有关于是否保留还是历史版本的争论。Michae和我最终是决定为每个新的稳定版本内核建立一个新的文档分支。也就是说LKMPG24x专注于24的内核,而 LKMPG2.6X将专注于26的内核。我们不会在一篇文档中提供对旧版本内核的支持,对此感兴趣的读者应该寻找相关版本的文档分支在文档中的绝大部分源代码和讨论都应该适用于其它平台,但我无法提供任何保证。其中的一个例外就是 Chapter12,中断处理该章的源代码和讨论就只适用于x86平台。什么是内核模块?内核模块是如何被调入内核工作的?什么是内核模块?现在,你是不是想编写内核模块。你应该懂得C语言,写过一些用户程序,那么现在你将要见识一些真实的东西。在这里,你会看到一个野蛮的指针是如何毁掉你的文件系统的次内核崩溃意味着重启动。什么是内核模块?内核模块是一些可以让操作系统内核在需要时载入和执行的代码,这同样意味着它可以在不需要时有操作系统卸载。它们扩展了操作系统内核的功能却不需要重新启动系统。举例子来说,其中一种内核模块时设备驱动程序模块,它们用来让操作系统正确识別,使用安装在系统上的硬件设备。如果没有内核模块,我们不得不一次又一次重新编译生成单内核操作系统的内核镜像来加入新的功能。这还意味着一个臃肿的内核。内核模块是如何被调入内核工作的?你可以通过执行 Ismo命令来査看内核已经加载了哪些内核模块,该命令通过读取/proc/modules文件的内容来获得所需信息这些内核模块是如何被调入内核的?当操作系统内核需要的扩展功能不存在时,内核模块管理守护进程kmod1]执行 modprobe去加载内核模块。两种类型的参数被传递给 modprobe
标签: linux
上传时间: 2022-03-30
上传用户:
针对交流电路过零检测电路存在结构复杂、过零点检测不准确、编程繁琐等问题,设计了一种基于LM339的硬件结构简单的过零检测电路。通过仿真软件Mulisim对该设计电路进行了仿真,实验证明了该方案过零检测的可行性、稳定性和可靠性,可直接作为交流电路中CPU的过零信号。Aiming at the problems of AC cilsuit zero crossing detection circuit such as complex structure, zero crossing detection and cumbersome programming, a zero crossing detection circuit with simple hardware structure based on LM339 was designed. The design circuit was simulated by simulation software Mulisim, and the feasibility, stability and reliability of zero crossing detection were proved by experiments, which can be used as zero crossing signal of CPU in AC circuit directly.
上传时间: 2022-05-03
上传用户:
CodeWarrior能做些什么?当你知道自己能写更好的程序时,你一定不会再使用别人开发的应用程序。但是常常会发生这种情况,就是当你写了无数行代码后,却找不到使得整个程序出错的那一行代码,导致根本没法编译和链接整个程序。这可能更令人灰心丧气。本文将告诉你如何使用CodeWarrior这一工具解决上述问题从现在开始,我们将集中精力学习如何在CodeWarrior中使用C/C++进行编程。为了学习本课程,你必须已经能够比较熟练地使用上述两种语言之一.CodeWarrior也可以支持Java开发,但那是另一门课程的内容。本课程仅限于在Windows平台上使用CodeWarrior进行的开发。一旦你精通了CodeWarrior编程后,你可以试试在其它平台上使用CodeWarrior,本文中讨论过的大部分内容都可以应用到开发Mac应用程序中,CodeWarrior能够自动地检查代码中的明显错误,它通过一个集成的调试器和编辑器来扫描你的代码,以找到并减少明显的错误,然后编译并链接程序以便计算机能够理解并执行你的程序。你所使用过的每个应用程序都经过了使用象CodeWorrior这样的开发工具进行编码、编译、编辑、链接和调试的过程。现在你在我们的指导下,自己也可以去做这些工作了你可以使用CodeWarrior来编写你能够想象得到的任何一种类型的程序。如果你是一个初学者,你可以选择编写一个应用程序(比如一个可执行程序),比如象微软公司的文本编辑器WordPad这样的应用程序。应用程序可能是最容易编写的程序了,而那些庞大的商业软件,比如象Adobe Photoshop.Microsoft Word以及CodeWarrior软件都是极其复杂的。其它类型的程序指的是控制面板(control panels),动态链接库(dynamic linked libraries,DLLs)和插件(plug-ins),我们先来简单的讨论一下这些类型的程序。
标签: codewarrior
上传时间: 2022-05-29
上传用户:
介绍Socket 编程让你沮丧吗?从man pages中很难得到有用的信息吗?你想跟上时代去编Intemet相关的程序,但是为你在调用connect()前的bind)的结构而不知所措?等等…好在我已经将这些事完成了,我将和所有人共享我的知识了。如果你了解C语言并想穿过网络编程的沼泽,那么你来对地方了。读者对象这个文档是一个指南,而不是参考书。如果你刚开始socket编程并想找一本入门书,那么你是我的读者。但这不是一本完全的socket编程书。平台和编译器这篇文档中的大多数代码都在Linux平台PC上用GNU的gcc成功编译过。面且它们在HPUX平台上用gcc也成功编译过。但是注意,并不是每个代码片段都独立测试过。
上传时间: 2022-06-23
上传用户:
前言说明控制的方法远远不止PID这一招,在许多场合也未必是最佳的控制算法。对于学习能力较好的师弟也可以再去寻求一种更优秀的控制算法。PID的分类多如牛毛,例如:模糊PlD、数字PID、神经元PID等等。另外,本文档是参考几十个PID相关文档资料整合而成。由于个人能力等原因,从策划、编辑、排版等花了一个多月的时间才完成此次PlD法的整合。为了更有针对性和有效性,本文档主要讲解数字PID及其变种(改进式PID):位置式和增量式。以及这两种PID的C语言编程实现、参数的调整确定和PID控制的应用。我们为什么要用PID岸法呢?原国很商单:其一,PlD是一种比较成熟的控制算法,而且还有许多基于PID的变种算法(简称改进式PID)。其二,资杜多,学习难度路低,入门快。其三,多届师兄实践过,感觉效果还不错!但每年资料成指数增长,从上届师兄那搭贝了好几G资料,进PID控制的文档可以夸张的说跟天上的“星星”一样,看了之后眼花缭乱,而且有很多重复的。为了让更多人能快速上手使用PID控制算法,结合个人经验和相关文档将它浓缩如下:
标签: pid算法
上传时间: 2022-07-01
上传用户:
本书介绍了TMS320LF240xDSP的硬件概况、内部资源、寻址方式、指令系统、程序编写和开发环境等。编写体系以TMS320LFZ4-0x模块的原理和应用为主线,介绍了一个功能模块(或外设)的基本原理,并列举出相应的应用实例,给出应用的电路原理接线图和汇编程序清单、C语言程序清单。使用C语言或使用C语言与汇编语言混合编程开发DSP控制应用程序,可达到事半功倍的效果,在满足控制应用程序的运行速度基础上可更好地维护程序和移植程序。书中提伙的所有程序均在重庆大学—美国德州仪器公司数字信号处理器解决方案实验室设计的实验开发板上调试通过 。
上传时间: 2022-07-12
上传用户:fliang
Altium Designer 10 提供了一个强大的高集成度的板级设计发布过程,它可以验证并将您的设计和制造数据进行打包,这些操作只需一键完成,从而避免了人为交互中可能出现的错误。发布管理系统简化规范了发布您的设计项目的流程,或者更具体地说,是那些项目中定义的配置, 直观,简洁而且稳定。更重要的是,该系统可以被直接链接到您的后台版本控制系统。 新增的强大的预发布验证手段的组合 - 用以确保所有包含在发布中的设计文件都是当前的,与存储在您的版本控制系统中的相应的文件“主人”保持同步的文件,并且通过了所有特定的规则检查(ERC, DRC, 等等) – 从而您可以在更高层面上控制发布管理,并可保证卓越的发布质量。亮点 ● 提供了将设计数据管理置于设计流程核心地位的全新桌面平台● 提供了新的维度,以供器件数据的搜寻和管理,确保输出到制造厂的设计数据具有准确性和可重复性● 为设计环境提供供应链信息的智能链接,确保对元器件的使用有更好的选择● 提供了涵盖整个设计与生产生命周期的器件数据管理方案,而结构性的输出流程更是确保了输出信息的完整性R10 系列的增强功能包括:输出Output Job编辑器、内电层分割加速改善、弹出式的多边形铺铜管理器、AtmelQTouch支持、自定制的笛卡尔直角和极坐标栅格、Aldec HDL 仿真功能、实现比使用指针更多的GUI增强,以及随着Altium Designer10临近发布日前,我们将构建其中的更多酷炫功能。而且,其平台稳定性也得到了增强。新功能与过去以季节性主题(如Winter09,Summer09)来命名的方案不同,而是采用新型的平实的编号形式来为新的发布版本进行命名。最新发布的Altium Designer - Release 10 将继续保持不断插入新的功能和技术的过程,使得您可以更方便轻松地创建您的下一代电子产品设计。 Altium 的统一的设计架构以将硬件,软件和可编程硬件等等集成到一个单一的应用程序中而闻名。它可让您在一个项目内,甚或是整个团队里自由地探索和开发新的设计创意和设计思想,团队中的每个人都拥有对于整个设计过程的统一的设计视图。在软件解决方案的开发过程中,偶尔脑子里会跳出不断进化的创意,跳出的每一个创意都在它能做么,并且能给用户带来什么好处方面,带领软件的解决方案到一个更高的台阶。Release 10 的到来是对于Altium Designer的又一个进化跳跃 – 是软件及其功能上的世代性的交替和革新,如果您愿意纵向追溯,其规模DXP平台推出以来,从未见过的以单一的统一模式交付的设计经验。 此次飞跃的亮点是收集了大量令人印象深刻而广泛全面的新技术,旨在不但帮助进化您管理您的设计信息的方式,而且还帮助您自动配置发布程。AD10 与Altium Vault Server -- 来自Altium的另一解决方案 -- 提供了一个设计数据管理系统,它可以有效地识别并解决许多导致设计,发布和制造等进程缓慢的各种问题。它是一种非常具有创造性和革命性的智能数据管理系统。该数据管理解决方案的重要组成部分是一个元器件管理系统。该元器件管理系统提供了真正的生命周期追踪功能和器件检验的独立性。 Altium Designer 10 提供了一个强大的高集成度的板级设计发布过程,它可以验证并将您的设计和制造数据进行打包,这些操作只需一键完成,从而避免了人为交互中可能出现的误差。发布管理系统简化规范了发布您的设计项目的流程,或者更具体地说,是那些项目中定义的配置, 直观,简洁而且稳定。更重要的是,该系统可以被直接链接到您的后台版本控制系统。 新增的强大的预发布验证手段的组合 - 用以确保所有包含在发布中的设计文件都是当前的,与存储在您的版本控制系统中的相应的文件“主人”保持同步的文件,并且通过了所有特定的规则检查(ERC, DRC, 等等) – 从而您可以在更高层面上控制发布管理,并可保证卓越的发布质量。通过AD10,您可以利用完整的生命周期(从概念和设计,经由原型和产品,到折旧和废弃 )来开发并管理您的电子产品,关于所有这些操作的正确性您都有足够的信心。我们很高兴能带给您这些富有灵感的新技术,和很多其他新功能一起,我们开发了这个发布系统并且得到了很多正面的反应,我们相信您也会很兴奋!通过全新的安装和内容交付系统,以及Altium Subscrption 订户计划可让您访问那些酷炫的新功能,并且随时保持更新。以可选择的插件方式交付各种功能模块,您再也不需要为下一个主体(或附体)发布而等待。相反,如果您愿意,您可以通过一个内容流水线 持续不断地从Altium获得最新的技术和解决方案的更新。Altium Designer 10 – ---所有一切将从这里开始。设计数据和发布管理设计数据管理系统Altium Designer 的统一平台 – 用一个统一的数据模型来代表所设计的系统 – 已被有效地运用,而且已有效地解决了在确保不断增长的产品性能增强和革新的要求的同时,提供更高的数据完整性的问题。其结果是一个设计数据管理模式的执行,允许关于设计世界和最终负责构建实际产品的供应链这二者之间的链接进行正式的定义。统一的数据模型会将设计数据映射到供应链将实际构建的特定的产品条目(裸装配板)。有了这种模型,并且配以各种功能和技术的广泛支持,该软件可使您轻松无痛苦地,流线式地,自动地传递来自设计领域的数据到产品领域 – 以高集成度的,直观的方式一键生成数据的输出。板级实现导出到 Ansoft HFSS™Updated in Beta 4对于那些需要用到RF和几G频率数字信号的PCB设计,您现在可以直接从PCB编辑器导出您的PCB文档到一个 Ansoft Neutral文件格式,这种格式可以被直接导入并使用 Ansys' ANSOFT HFSS™ 3D Full-wave Electromagnetic Field Simulation软件来进行仿真。 Ansoft 与Altium合作提供了在PCB设计以及其电磁场分析方面的高质量协作能力。导出到 SiSoft Quantum-SI™Altium Designer 的 PCB编辑器支持保存PCB设计时同时包括详细的层栈信息以及过孔和焊盘的几何信息,并保存为CSV文件,该文件可用于 SiSoft 的 Quantum-SI 系列信号完整性分析软件工具。 SiSoft 与 Altium 合作特别为Altium Designer的用户提供了最理想的 Quantum-SI 可接受的导入格式。PCB 3D 视频为了提供对于您的PCB板的更为生动和更为有用的文档, Altium Designer 的 Release 10 提供了生成PCB 3D视频文档的功能。 从您的主管那边所看到的PCB 3D视频的内容,就是简单的一系列关于您的PCB板3维画面的快照截图,类似于关键帧。对于这一系列按顺序排列的每一个后来的画面关键帧,您都可以调整其缩放程度,平移或者旋转,调整这些所有相对之前的关键帧的设置。输出时,画面帧的顺序采用强大的多媒体发布器导出为视频格式 – 一个可配置的输出媒介被单独添加到 Release 10 以用于生成PCB 3D 视频。 其结果就是一系列画面帧按顺序平滑地内插到关键帧系列。统一的光标捕获系统Altium Designer 的 PCB编辑器已经有了很好的栅格定义系统 – 通过可视栅格,捕获栅格,元件栅格和电气栅格等等都可以帮助您有效地放置您的设计对象到PCB文档。随着Altium Designer 10 的发布,该系统已休整而且随着统一的光标捕获系统的到来达到一个新的水平。该系统汇集了三个不同的子系统,共同驱动并达到将光标捕获到最优选的坐标集:用户可定义的栅格,直角坐标和极坐标之间可按照喜好选择;捕获栅格,它可以自由地放置并提供随时可见的对于对象排列进行参考的线索;以及增强的对象捕捉点,使得放置对象的时候自动定位光标到基于对象热点的位置。按照您觉得合适的方式,使用这些功能的组合, 可确保您轻松地搞定在PCB工作区放置和排列您的对象!PCB 中类的结构在将设计从原理图转移到PCB的时候,Altium Designer中已经提供了对于高质量,稳定的类(器件类和网络类)创建功能的支持。Release 10 将这种支持提升到一个新的水平,可以在PCB文档中定义生成类的层次结构。从本质上讲,这使得您可以按照图纸层次将元件或网络类组合到从那张图纸生成的一个母类,而这个母类本身也可以是它上面的一个母类的子类,如此一路到您的设计中的顶层图纸。而顶层生成的母类(或叫特级类)从本质上来讲即是类的结构层次的源头。这些所有生成的母类都被称为结构类。结构类,不仅允许在PCB领域中对原理图文档结构进行繁衍和高级导航 ,而且也可用于逻辑查询,例如,设计规则的范围,或者设置条件进行过滤查找。设计协作喜欢进行协同PCB设计,多个设计师可以同一时间对同一电路板进行工作,然后把他们的结果合并在一起的想法? Release 10 带来了真正的PCB设计过程中的协作。通过新的协作,比较和合并面板您会了解你的PCB板当前的状态,与您的协作同伴的结果进行比较。点击面板上的命令来显示差异,然后使用差异映射图得到关于谁在板上做了些什么的整体视图。在映射图中进行点击以所放到您感兴趣的区域,然后在工作区中使用右键单击命令来保留您的更改,或拖拽其他人所做的更改到您的PCB板。甚至还有一个自动命令,可以自动集成所有的与您的板子的当前版本不相冲突的更改 ,并且带来大量来自其他设计师的布线成果。当您一切准备就绪,可以将更新保存下来,并提交回储存库。每个设计师还可以定义工作区域,确保每个人都知道其他人在哪一块工作,以及不能在哪一块工作。对于 Atmel Touch Controls 的支持随便看一下如今任何最新的电子产品,您也许会发现一个很酷的用户界面 - 如按钮,滑条和滚轮等等触摸感应控制块。为了适应您的电子产品中对这种控制块的使用,Altium Designer 10 提供了在您的PCB中创建平面电容性的传感器模式的支持,用于 Atmel® QTouch® 和QMatrix® 传感器控制器。增强的多边形铺铜管理器Altium Designer 的Release 10 中的多边形铺铜管理器 对话框提供了更强大的功能性增强,提供了关于管理您的PCB板中所有多边形铺铜的附加功能。这些附加功能包括创建新的多边形铺铜,访问对话框的相关属性和多边形铺铜删除,等等都可以在这里进行操作 --- 全面地丰富了多边形铺铜管理器对话框的内容,并将多边形铺铜管理整体功能带到新的高度!为使设计师们成功协作的重要工具,是使得设计师们能够图形化地比较他们的工作成果,然后合并以保留任何他们认为合适的更改。但对于库方面的协作呢? Altium Designer 已经提供了在某一时间更新PCB到库元件的最新版本的功能,但Release 10 包含了一个功能强大,可视化比较的工具,以协助PCB设计师在更新和改变控制流程方面的工作。
上传时间: 2022-07-22
上传用户:canderile
PADS9.5如何添加更多的“过孔”说明:在PCB的设计过程中,某些地方需要添加更多的“过孔”,比如GND地线;VCC电源线或者大电流的导线,添加多的“过孔”使得PCB板子屏蔽效果更好或通过的电流更大!一:首先在pads_layout里点击菜单“设置→焊盘栈”,设置更多的过孔类型;二:在pads_router里,布线过成中按“shift+单击”(或者点击右键添加过孔)添加一个过孔三:如何在GND地线或某条VCC网络上添加更多的过孔首先在空白处单击右键→选择网络,然后再选择VCC网路,此时的VCC网络已经被选中了并且高亮显示,然后再点击右键→选择添加过孔四:添加过孔后会出现一些“飞线”,说实话我也纳闷,过孔本来是与网络连接好的为何会出现“飞线”呢,这可能是PADS的软件BUG,只好人工解决吧①给过孔布线到最近的焊盘或走线,“飞线”就消失了②给过孔覆铜或灌铜,“飞线”就消失了
上传时间: 2022-07-24
上传用户:
我和LabVIEW(Word版)——一个NI工程师十年的编程经验当我开始在键盘上敲打出这句话的时候,我已经使用 LabVIEW 7 年了。7 年的时间,就算天赋平平也可以积攒下一箩筐可供参考的经验了。所以我打算利用今后的闲暇时间写一些这方面的东西,既可以同大家交流,也是作为自己这七年工作的总结。还是在上大学的时候,有一次老师让编写一段软件,用来模拟一个控制系统:给它一个激励信号,然后显示出它的输出信号。那时我就想过,可以把每一个简单的传递函数都做成一个个小方块,使用的时候可以选择需要的函数模块,用线把它们连起来,这样就可以方便地搭建出各种复杂系统。后来,我第一次看到别人给我演示的LabVIEW编程,就是把一些小方块用线连起来,完成了一段程序。我当时就感觉到,这和我曾经有过的想法多么相似啊。一种亲切感油然而生,从此我对LabVIEW的喜爱就一直胜过其他的编程语言。这是一本十分经典的LabView入门书籍,编写得十分平易近人,适合初学者或者对LabView感兴趣的同学,也可以作为一本工具书来使用。
标签: labview
上传时间: 2022-07-26
上传用户:
首先,本文对几种传统MPPT控制算法进行了研究、分析和比较,总结出这些算法存在的共同缺点是无法适应光伏阵列P-V曲线呈现多峰的情况,由此引出新颖MPPT算法研究的必要性。对光伏阵列在各种复杂条件下进行了人工遮挡实验,观察所得大量数据后发现5条重要规律,它是新颖MPPT算法实现的基础。其次,根据系统设计要求给出了本系统总体设计方案,并详细介绍了硬件、软件设计方案。再次,依据硬件设计方案搭建硬件电路。硬件电路设计采用TI公司的DSP TMS320F28027作为主控芯片,设计光伏阵列的电压、电流采集及信号处理电路,并根据MPPT控制算法输出PWM信号,再经隔离、驱动电路放大后驱动DC/DC电路功率管的通与断。由PWM占空比的不断变化动态的调整了光伏阵列的等效负载阻抗,从而达到最大功率点追踪的目的。随后,基于CCS开发环境,编程实现新颖MPPT算法,该算法主要由主程序、AD采样子程序、改进扰动观察法子程序,全局峰点追踪子程序及定时中断子程序等五部分组成。最后,分别对各个模块电路及新颖MPPT算法进行测试,并给出必要的测试结果图。测试结果表明,硬件、软件算法都满足设计要求,而且新颖MPPT算法较传统MPPT算法能够更正确、快速的追踪到光伏系统在复杂条件下的全局最大功率点,这对以后光伏系统控制算法的进一步研究具有很大的技术参考价值。
上传时间: 2022-07-26
上传用户: