VxWorks

Java程序员养成日记一(计算机基础)2.20

烂漫一生 提交于 2021-02-20 19:28:29
参照博客 java程序员技能树 (如有侵权马上删除) 经典回顾 操作系统( operation system OS) 简介 操作系统(operation system,简称OS)是管理 计算机硬件 与 软件 资源的 计算机程序 。操作系统需要处理如管理与配置 内存 、决定 系统资源 供需的优先次序、控制 输入设备 与 输出设备 、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。 主要的操作系统 嵌入式( VxWorks 、 eCos 、 Symbian OS 及 Palm OS 、 iOS 、 Android ) 类 Unix( System V 、 BSD 与 Linux ) Microsoft Windows( Windows XP 、 Windows 7 、 Windows 10 、) MacOS X( MacOS 和MacOS X ) Google Chrome OS( Google的轻型的、基于网络的计算机操作系统计划 ) 编译原理 基本概念 编译原理即是对高级程序语言进行翻译的一门科学技术, 我们都知道计算机程序由 程序语言 编写而成, 在早期计算机程序语言发展较为缓慢, 因为计算机存储的数据和执行的程序都是由0、1代码组合而成的,

Nanopb without callbacks

杀马特。学长 韩版系。学妹 提交于 2021-02-11 17:58:24
问题 I'm using Nanopb to try and send protobuf messages from a VxWorks based National Instruments Compact RIO (9025). My cross compilation works great, and I can even send a complete message with data types that don't require extra encoding. What's getting me is the callbacks. My code is cross compiled and called from LabVIEW and the callback based structure of Nanopb seems to break (error out, crash, target reboots, whatever) on the target machine. If I run it without any callbacks it works great

VXWorks adding functions to header files

夙愿已清 提交于 2021-02-10 22:16:57
问题 I'm trying to add my own function to jobQueueLib and step through the lines of code for that, or any of the functions there (which are all EXTERNs). Stepping through the .h function call goes straight to assembly if I don't put #include <jobQueueLib.h>, which is referring to vxworks-6.9/target/h/wrn/coreip/jobQueueLib.h With the include added, stepping into a same existing function causes a segmentation violation. UPDATE: My issue is C, downloadable kernel module project build, or component

新手怎么学习嵌入式?分享嵌入式的开发学习路线

陌路散爱 提交于 2021-01-21 12:46:11
作为新人,要如何学习嵌入式Linux?首先您要具备基本的C语言基础,然后,您要想好学习嵌入式Linux目标是什么,是想做底层系统、还是应用开发。如果是关于底层开发,是学习Linux驱动,还是项目应用。嵌入式Linux包含4大板块bootloader,内核, 驱动程序、根文件系统,应该如何深入学习。 学习嵌入式一般都学习C语言、嵌入式系统、嵌入式Linux、单片机等,嵌入式系统是用于控制、监视或者辅助操作机器和设备的装置。就可以了解到嵌入式是用来设计电子产品的,尤其是我们生活所拥有的智能手机、智能电视、智能机器人等都是利用嵌入式技术研发出来,其研发出来的产品给我们的生活带来许多的方便,也给嵌入式工程带来成就感。 嵌入式学习是一个循序渐进的过程,目前常见的是嵌入式开发Linux方向,嵌入式目前主要面向的几个操作系统,LINUX,WINCE,VxWorks等,而Linux是开源免费的,而且其源代码是开放的,更加适合学习嵌入式,学习嵌入式开发,我认为大概分为以下四个个阶段: 一、基础阶段 二、嵌入式系统核心开发 三、底层 四、嵌入式系统开发与拓展 第一:基础阶段 1、要熟悉LINUX系统这个是直接的操作平台,对这个系统的熟悉程序,直接影响你的速度。 2、C语言学习,在linux环境下更多的是用C语言开发,C语言是所有编程语言中的强者,这部分内容属于必须精通的内容,这块越强,将来的瓶颈就越小

LS1046调试记录(三)-UBOOT移植概要

放肆的年华 提交于 2020-12-30 10:02:40
对于LS1046A芯片,在开发自主板卡时,采用的开发环境是LSDK或者SDK,之前提过最好是使用LS系列芯片开发时最好是采用最新的LSDK进行。其实,LSDK与SDK在代码架构和移植过程中,基本上完全是一致的,所以本移植过程也同样适用于SDK开发环境。 在LSDK中,rcw以及u-boot都位于firmware(固件)目录下: 开发自主板卡时,一般以开发板的代码和环境为参照,在此之上进行更改。以LS1046A为例,有LS1046ARDB和LS1046AQDS作为参考,根据自己板卡与哪块更为相似进行修改即可,这个与vxworks的bsp开发很相似。 板卡代码在如下目录: 同时,比较重要的头文件定义在如下目录: 这个头文件很重要,是主要的修改对象。 熟悉完修改目录后,就可以进行移植了,步骤大体如下: 1. DDR配置修改; 主要文件是修改ddr.c和ddr.h,如果自主板卡是DIMM的,使用SPD配置DDR就可以不用修改,因为所有参数都是在内存的EEPROM里面读出来的。但是,如果是DDR颗粒就需要查看LS1046A DDR控制器以及DDR颗粒datasheet来进行配置,这个时候需要修改ddr.c的代码。可以参照p1010的过程进行。 2. ETH配置修改: 主要修改eth.c文件,和头文件,修改内容为接口裁剪、PHY地址修改等。 3. 系统配置 主要修改如系统时钟、ddr时钟

Task之互斥信号量

杀马特。学长 韩版系。学妹 提交于 2020-12-18 04:09:39
欢迎关注公众号 VxWorks567 多任务系统里经常面临一个问题:资源竞争。哪些资源呢?很多,例如外设、文件、数据等。当多个任务同时访问这些资源,就会发生冲突。例如下面这段代码 每调用一次函数myBufPut(),就会在数组myBuf[]中存入一个字符,这相当于一个入栈操作。在实际系统中,任务多了,任何情况都可能发生,假如有两个任务(T1、T2)都调用这个函数,就可能出现以下执行序列 T1刚把myBufIndex加了1,就被高优先级的T2抢占了。然后必须等T2退出就绪队列,T1才能继续执行。最后的结果是myBuf[0]里啥也没存,而myBuf[1]里先被存入'b',又被存入'a'。可见仅仅两行代码,就会出乱子。那如果某个资源只有一行代码呢? 本文分享自微信公众号 - 这里只有VxWorks(VxWorks567)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/4470120/blog/4366296

Net之SNTP

五迷三道 提交于 2020-12-12 22:40:52
Net之SNTP 展开 //--> 本文分享自微信公众号 - 这里只有VxWorks(VxWorks567)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/4470120/blog/4366247

Linux操作系统实时性分析

十年热恋 提交于 2020-12-01 01:48:33
1. 概述   选择一个合适的嵌入式操作系统,可以考虑以下几个因素:   第一是应用。如果你想开发的嵌入式设备是一个和网络应用密切相关或者就是一个网络设备,那么你应该选择用嵌入式Linux或者uCLinux,而不是uC/OS-II。   第二是实时性。没有一个绝对的数字可以告诉你什么是硬实时,什么是软实时,他们之间的界限也是十分模糊的,这与你选择什么样的CPU,它的主频、内存等参数有一定关系。如果你使用加入实时补丁等技术的嵌入式Linux,如Monta Vista Linux(2.4.17版本),最坏的情况只有436微秒,而99.9%的情况是195微秒以内。考虑到最新的Linux在实时性方面的改进,它可以适合于90~95%的各种嵌入式系统应用。当然,你如果希望更快的实时响应,如高速A/D转换需要几个微秒以内的中断延时,可能采用uC/OS-II是合适的。当然,采用像Vxworks这样传统的嵌入式操作系统也可以满足这样的强实时性要求。    2. 为什么选择Linux操作系统   Linux系统作为一个GPOS(通用操作系统)发展至今已经非常成熟可靠了,并且由于遵循GPL协议,开放所有系统源代码,非常易于裁剪。更重要的是,与其他开源的GPOS或RTOS相比,Linux系统支持多种处理器、开发板,提供多种软件开发工具,同时Linux系统对网络和图形界面的支持非常出色。显然

UGL之绘制Ellipse

自闭症网瘾萝莉.ら 提交于 2020-11-23 08:33:18
欢迎关注VxWorks567 如转发,请标明出处! 今天来看看WindML里最复杂的函数之一uglEllipse() 通常就是用来画圆,可以指定圆的弧边的颜色和内部的颜色,还可以指定圆边的厚度,但是这个圆边只能是实线,目前还不支持虚线 而椭圆就是横轴与竖轴不等的圆形 起点与终点不一致呢?就是扇形了 而空心扇形呢?就是弧形了 可以看到,计算扇形/弧形的起点与终点时,是按逆时针顺序的 我是泰山,专注VX 15年! 一起学习,共同进步! 本文分享自微信公众号 - 这里只有VxWorks(VxWorks567)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。 来源: oschina 链接: https://my.oschina.net/u/4470120/blog/4366290

UGL之绘制多边形

只愿长相守 提交于 2020-11-23 08:25:07
欢迎关注VxWorks567 如转发,请标明出处! 今天来看看WindML里绘制多边形的操作 主要函数就是uglPolygon(),参数pData用于指明每个顶点的坐标,首尾两个点需要一致,所以其个数numPoints比多边形的实际顶点数要多一个,另外还需要指明前景色(边框)和背景色(填充) 除了这种常见的凸多边形,还支持凹多边形 以及自相交图形 或者简单一些:空心图形,即只有边框,只需要把背景色设置为透明即可 无边框图形呢?两种方案:前景透明,或线宽为0 边框默认是宽度为1的实线,试试换成其它值 如果首尾不一致,则表示非封闭图形,即折线 此时的背景就得是透明的,否则WindML就晕了 不同的光栅效果,uglRasterModeSet(),可以参考 画线操作 如果需要绘制的多边形是个矩形,且其中一条边是水平方向的,可以直接使用uglRectangle()。不仅参数简单了,更重要的是:底层驱动可以用水平线或区域填充来实现,再配上显卡的硬件加速功能,绘制速度可以成百上千倍的提升 最后还有背景区域的模式填充,uglFillPatternSet(),有空专门写个例子试试 我是泰山,专注VX 15年! 一起学习,共同进步! 本文分享自微信公众号 - 这里只有VxWorks(VxWorks567)。 如有侵权,请联系 support@oschina.cn 删除。 本文参与“ OSC源创计划 ”