- 博客(223)
- 资源 (92)
- 问答 (2)
- 收藏
- 关注
原创 图形化 Lustre 代码生成器 - 北京广利核 ACG
1]: Lustre 代码生成器 - 中国核动力研究设计院(核动力院)NASCG 实现, https://zhuanlan.zhihu.com/p/697149941。ACG 的输出为 Clight 代码。国内与 Lustre 编译器相关的工作,在核电行业,除了核动力院的 NASCG[1] 外,还有北京广利核的 ACG Lustre 代码生成器。的引用没有找到依据,可能是作者自己对图形化标记法表达的 Lustre 语法的命名。ACG 代码生成器的输入为图形化标记法表示的 Lustre 语言,其被命名为。
2024-05-16 21:56:12 222
原创 同步假设 - 同步方法对实时控制系统的抽象
信号 (Signal)- 用于通信完美采样 (Perfect sampling) - 信号元组逻辑时间 (Logical time) - 瞬时性零延迟 (Zero-delay) - 内部操作瞬时完成信息广播瞬时性 (Instantaneous broadcasting)在不同的同步假设叙述中,可能会使用不同的术语,但传达的概念是一致的。更多内容,可参考。关键字:同步假设,同步语言,Lustre,Scade,高安全嵌入式软件。
2024-05-11 12:29:29 336
原创 同步语言(如SCADE)在工业界的商业化过程 (1991 - 2002)
Albert Benveniste 等人在2002年叙述了同步语言自1991年提出后,到2002年12年间的发展。这里将描述Albert对同步语言在工业界在1991 - 2002期间的商业化历程。更多内容,可参考《The Synchronous Languages 12 Years Later》。过去的12年见证了同步语言在工业上的多次成功应用。在这里,将描述其中的一些过程。
2024-05-11 12:27:36 444
原创 支撑 SCADE 同步方法论的四项核心技术
接下来将描述专用于航空电子、铁路、汽车、和工业应用的基于模型的嵌入式软件设计、验证和实现的 SCADE 同步方法和工具集。由于规约是可执行的,因此可以在将规约对应的实现嵌入具体实现之前,对规约进行透彻的模拟和验证。其中会进一步讨论同步方法对嵌入式控制系统中并发与确定性的计算模型抽象、Scade 图形化形式、形式化的同步语义(SCADE 5)、使用SCADE 进行软件研发过程中的设计与验证流程等讨论。功能验证只需要在块图级别进行,因为由经过认证的 KCG 编译器生成的可嵌入的 C 代码能被确保是正确的。
2024-05-11 12:25:15 437
原创 SCADE Suite 开发环境介绍
SCADE Suite 中的"SCADE"为"安全关键应用开发环境"的缩写。需说明的是,在时效性方面,下面的描述反映的是发展至2010年左右的情况。更详细的内容,可参考《Formal Methods - Industrial Use from Model to the Code》(ISBN 978-1-84821-362-3)。SCADE 开发环境提供了基于 SCADE 建模语言的工具集,覆盖了软件应用研发活动中的设计、编码与验证阶段工作。
2024-05-11 12:23:52 476
原创 Scade 6 - 面向高安全嵌入式软件研发的形式化语言
SCADE 提供了面向高安全嵌入式控制软件的高级语言和开发环境。在过去逾20年里,被应用于航空、核能、铁路、汽车等行业。SCADE 技术最初基于 Capsi 与 Halbwachs 所设计的同步数据流语言 Lustre。在 SCADE 发展初期,其主要被当作是 Lustre 的图形化标记法,并搭配了能应用于安全关键应用研发的代码生成器。在2008年,基于新语言Scade 6的 SCADE 主要改版发布。
2024-05-11 12:21:13 476
原创 SCADE Suite 开发环境的起源
SCADE Suite 中的"SCADE"为"安全关键应用开发环境"的缩写。需说明的是,在时效性方面,下面的描述反映的是发展至2010年左右的情况。更详细的内容,可参考《Formal Methods - Industrial Use from Model to the Code》(ISBN 978-1-84821-362-3)。
2024-05-11 12:19:26 239
原创 经验报告 - SCADE Suite 6 KCG 经历 DO-178B 认证过程中进行的活动
目前的经验显示出,OCaml可以显著缩小工程工具的规范和实现之间的距离,更好地追踪工具输入语言的形式化描述与其编译器实现之间的关系。该编译器基于当时用程序语言 Eiffel的变种(LOVE)编写的代码生成器(ECMA 2005)所开发,当时出于避免被认证机构拒绝的缘故,因此用 C 语言重新编实现了该编译器。已被纳入航空器的全周期认证流程中。目前在与关键软件有关的其他工业领域(医疗行业的 FDA Class III、铁路应用的 EN 50128、汽车行业的 IEC 61508 等)也有相应的认证程序。
2024-05-11 12:17:22 371
原创 Gerard Berry 对从事SCADE设计研发的主要成员的感谢
需要注意的是,该材料所处的时期为 SCADE 5 时期,SCADE 6 正在设计研发。
2024-05-11 12:14:50 389
原创 Lustre 代码生成器 - 中国核动力研究设计院(核动力院)NASCG 实现
由于使同步语言在产业界取得最大成功的 SCADE Suite 产品中,同步语言编译器被命名为“代码生成器”(KCG, qualified code generator),因此,Lustre 编译器在命名上也被称为 Lustre 代码生成器。安全关键应用开发环境套件(SCADE Suite)背后的技术基础,在历史发展上,也受 Lustre 语言很深的影响。NASCG 在实现技术选择上,由于其特色为在语义分析中采用定理证明形式化技术(Coq),因此,采用了 OCaml 作为实现的编程语言。
2024-05-11 12:11:17 276
原创 Firefly RK3399 开发板烧录镜像时出现“Download Boot Failed“的解决方案
在使用FireflyRK3399开发板过程中,曾经出现过如下场景:1)使用rockchiplinuxuboot编译uboot.img,trust.img,并使用AndroidToolv2.65更新uboot.img,trust.img。替换后,系统正常启动。2)对uboot源代码进行修改,再次编译uboot,将生成的uboot.img,trust.img试图更新原来的uboot,结果更新失败。3)在系统进入"MaskROM"模式后,AndroidToolv2...
2020-09-14 10:13:17 5183 1
转载 How I Became a Better Programmer
URL: https://jlongster.com/How-I-Became-Better-ProgrammerMarch 20, 2017JAMES LONGSeveral people at React Conf asked me for advice on becoming a better programmer. For some reason, people see me a...
2020-03-25 18:03:45 473
原创 RS232, RS422, RS485 引脚布局区别
RS232, RS422, RS485在接线接口方面都使用DB9 9针接口,但各引脚的含义不同。各接口的引脚区别如下表描述。Pin Mode RS232 RS422 RS485 1 DCD DCD+ - 2 RXD RX+ - 3 TXD TX+ D+ 4 ...
2020-03-10 09:06:48 1087
原创 windows命令行启动常用工具
在windows命令行(ctrl + r) 中输入关键字启动若干工具,能提升windows使用效率。不少工具其实是 C:\Windows\System32 下的工具。下面列出一些常用关键字taskmgr : 任务管理器eventvwr :事件查看器devmgmt.msc : 设备管理器SystemPropertiesAdvanced : 环境变量编辑界面control:控制面板界面...
2019-08-12 20:43:15 766
原创 构建嵌入式版本的 ACE TAO 6.5.3
introduction之前曾在ubuntu 18.04中构建嵌入式版本的ACE TAO 6.5.3. 在之后使用过程中发现, 当升级系统工具链后, ACE TAO 库不兼容本地环境的系统库.具体表现形式为ACE TAO中示例程序执行时将出现segment fault. 经过在本地重新构建ACE TAO 6.5.3得出新的ACE TAO动态链接库,才能使ACE TAO示例程序正常使用.本文描述...
2019-06-30 17:20:04 567
转载 Windows RDP远程桌面无密码账户
在远程主机缺省配置下,RDP远程桌面该Windows系统中无密码用户将出现无权限访问的情况,需进行如下配置。开始菜单中,选择“运行”,输入“secpol.msc”启用“本地安全设置”; 选择“安全设置”; 选择“本地策略”; 在“安全选项”的右窗口中,找到“账户:使用空白密码的本地账户只允许进行控制台登录”,双击 选择“已禁用”;-----------...
2019-06-16 13:04:11 7870
转载 msys2软件包管理工具pacman常用命令
pacman是arclinux中的软件管理工具,也是widows上msys2默认的软件管理工具。pacman可以直接从网络上的软件仓库下载安装及删除软件,自动处理依赖关系,类似ubuntu中的apt-get。安装软件 pacman -S 软件名: 安装软件。也可以同时安装多个包,只需以空格分隔包名即可。 pacman -S --needed 软件名1 软件名2: 安装软件,但不...
2019-06-16 12:07:15 3515
转载 Node.js 究竟是什么?
https://www.ibm.com/developerworks/cn/opensource/os-nodejs/index.html## 简介如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:“Node 究竟是什么东西?” 即便是在参阅 Node 的主页之后,您甚至可能还是 不明白 Node 为何物?Node 肯定不适合每个程序员,但它可能是...
2019-04-13 17:51:56 306
转载 廖雪峰介绍Node.js
https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501245426ad4b91f2b880464ba876a8e3043fc8ef000从本章开始,我们就正式开启JavaScript的后端开发之旅。Node.js是目前非常火热的技术,但是它的诞生经历却很奇特...
2019-04-13 17:47:21 412
转载 How to Easily Read a Linux Man Page
https://www.maketecheasier.com/read-linux-man-page/One of the most important skills you can learn as a Linux user is how to use a manual page, or “man page.”This article will introduce you to those ...
2019-04-13 08:49:14 364
原创 PREEMPT_RT 3.18.136 实时时延评估
测试软硬件环境zturn a9 双核主板linux kernel 3.18.136 + 3.18.136 rt-linux patch实时性能测试集 rt-test 1.3 中 cyclictest 与 hackbench测试参数: 有负载/无负载; 测试时长10 min; 测试时锁定内存,无内存换页情况; 测试程序优先级 90; 线程间隔 200 us, 最大允许时延 200us.负...
2019-04-07 18:41:10 1721
转载 GCC中的弱符号与强符号
转载自https://www.cnblogs.com/kernel_hcy/archive/2010/01/27/1657411.html我们经常在编程中碰到一种情况叫符号重复定义。多个目标文件中含有相同名字全局符号的定义,那么这些目标文件链接的时候将会出现符号重复定义的错误。比如我们在目标文件A和目标文件B都定义了一个全局整形变量global,并将它们都初始化,那么链接器将A和B进行链接时会...
2019-03-24 14:27:27 438
原创 Linaro GCC 交叉编译工具链 国内源下载列表 (持续更新)
gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabihf.tar.xz链接:https://pan.baidu.com/s/1-DCIVVs6QTGv5tYDB9Zhtw提取码:vdz1gcc-linaro-4.9-2016.02-i686-mingw32_arm-linux-gnueabihf.tar.xz链接:https://pan...
2019-03-24 11:11:33 17724 8
转载 Modbus协议使用常见问题分析
Modbus协议最初由Modicon公司开发出来,是针对PLC设备设计的基于串行总线的主从模式的应用层总线设备协议。ModbusTCP是封装在TCP包内的Modbus协议,虽然有一些变化,但是根本上还是主从模式。随着嵌入式技术的发展,国内很多系统的控制和采集单元部分为公司自主研发,一般建议这些公司的串行通讯协议采用Modbus协议,很多用户在modbus协议存在着理解错误,现在分析如下:一、mod...
2019-03-23 22:42:16 4342
转载 Modbus总结
转载自: https://www.cnblogs.com/iluzhiyong/p/4301192.html.概念①Coil和Register Modbus中定义的两种数据类型。Coil是位(bit)变量;Register是整型(Word,即16-bit)变量。②Slave和Master与Server和Client 同一种设备在不同领域的不同叫法。 Slave: 工业自动...
2019-03-23 22:41:15 3549
转载 Systemd 入门教程:实战篇
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-part-two.html一、开机启动对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件。如果你想让该软件开机启动,就执行下面的命令(以httpd.service为例)。 $ sudo systemc...
2019-02-13 11:23:02 247
转载 Systemd 入门教程:命令篇
http://www.ruanyifeng.com/blog/2016/03/systemd-tutorial-commands.htmlSystemd 是 Linux 系统工具,用来启动守护进程,已成为大多数发行版的标准配置。本文介绍它的基本用法,分为上下两篇。今天介绍它的主要命令,下一篇介绍如何用于实战。一、由来历史上,Linux 的启动一直采用init进程。下面的命令用来启动服务。...
2019-02-13 11:13:36 231
转载 Valgrind(Memcheck)错误消息的解释
Explanation of error messages from MemcheckMemcheck issues a range of error messages. This section presents a quick summary of what error messages mean. The precise behaviour of the error-checking ma...
2019-02-12 12:06:06 1520
转载 Valgrind快速上手教程
1. IntroductionThe Valgrind tool suite provides a number of debugging and profiling tools that help you make your programs faster and more correct. The most popular of these tools is called Memcheck....
2019-02-12 11:55:48 276
转载 Top 10 Most Common C++ Mistakes That Developers Make
Top 10 Most Common C++ Mistakes That Developers MakeThere are many pitfalls that a C++ developer may encounter. This can make quality programming very hard and maintenance very expensive. Learning t...
2019-02-10 10:24:54 259
原创 198. house robber 题解
https://leetcode.com/problems/house-robber/ max_sum[N]: 在被抢夺的房子不能连续的条件下,抢前N个房子能达到的最大收益。V[N] : 第N个房子的价值。 对抢前N个房子的结果,有两种可能: 第N个房子被抢;或第N个房子不被抢。递推式:max_sum[N] = max{ max_sum[N-2] + V[N], ma...
2018-12-30 13:22:45 266
原创 53. Maximum Subarray 题解
https://leetcode.com/problems/maximum-subarray/MaxValue[n]: 当子数组最后一个元素为n时,子数组求和能够达到的最大值。Value[n]: 第n个元素的值。递推式MaxValue[n] = max( MaxValue[n-1] + Value[n] , Value[n])题解样例int maxSubArray(int...
2018-12-24 20:29:47 157
原创 70. Climbing Stairs 题解
https://leetcode.com/problems/climbing-stairs/ ways[n]: 跨越n个台阶的方法数量跨越n个台阶的方法数 = 跨越[n-2]个台阶,再跨2个台阶 + 跨越[n-1]个台阶,再跨1个台阶。递推式:ways[n] = ways[n-1] + ways[n-2]题解样例int climbStairs(int n) { i...
2018-12-24 20:03:13 154
原创 746. Min Cost Climbing Stairs 题解
leetcode.com/problems/min-cost-climbing-stairs/ minCost[n]: 达到台阶n需要消耗的最小成本Cost[n]: 台阶n自身的成本递推式为minCost[n] = max( minCost[n-1] + Cost[n-1], minCost[n-2] + Cost[n-2])minCost[0] = 0minCost[1] = ...
2018-12-23 19:22:47 246
原创 121. Best Time to Buy and Sell Stock 题解
leetcode.com/problems/best-time-to-buy-and-sell-stock/MaxProfit[n] : 若第n天卖出,能获得的最大收益。Price[n]: 第n天的股票价格。递推式为MaxProfit[n] = max(MaxProfit[n-1] + Price[n] - Price[n-1], 0) 示例实现int maxProfit...
2018-12-23 18:40:56 186 1
原创 嵌入式系统常见的内存段
BSS, DATA, RODATA, TEXT, STACKBSS: 未初始化的外部变量DATA: 初始化的外部变量RODATA: 初始化的外部变量,但是值不能被修改TEXT: 程序代码STACK: 自动变量
2018-12-23 17:53:31 538
转载 congatec AG acquires Real-Time Systems GmbH
congatec accelerates real-time hypervisor adoption for the embedded marketNuremberg/Deggendorf, Germany, 27 February 2018 * * * congatec – a leading vendor of standardized and customized embedded co...
2018-12-12 10:43:02 396
转载 #!/usr/bin/env python 的解释
#!/usr/bin/env python The first line in this file is the "shebang" line. When you execute a filefrom the shell, the shell tries to run the file using the command specifiedon the shebang line. ...
2018-09-08 09:25:06 1625
转载 ARM、X86/Atom、MIPS、PowerPC 介绍
2016RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器...
2018-08-21 15:42:07 386
转载 ARM、X86/Atom、MIPS、PowerPC 介绍
2016RISC(reduced instruction set computer,精简指令集计算机)是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。这样一来,它能够以更快的速度执行操作(每秒执行更多百万条指令,即MIPS)。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器...
2018-08-21 15:42:03 655
ARINC 653 标准 Par1 Required Services
2019-12-22
gcc-linaro-4.9-2016.02-i686-mingw32_arm-linux-gnueabihf.tar.xz
2019-03-24
形式化方法概貌_2018
2019-02-13
迁移学习Python实战 Hands on transfer learning with Python
2019-01-30
python numpy 教程
2019-01-30
十分钟上手sklearn 特征提取 常用模型 交叉验证
2019-01-30
贝叶斯网络简史
2019-01-30
机器学习 -- Backpropagation
2019-01-30
机器学习 - Bias and Variance
2019-01-30
机器学习 -- CNN
2019-01-30
机器学习 -- 分类
2019-01-30
机器学习 -- Deep Learning
2019-01-30
机器学习 -- Tips for Deep Learning
2019-01-30
机器学习-- ensemble
2019-01-30
机器学习 -- Gradient Descent
2019-01-30
机器学习 -- Recurrent Neural Network (RNN)
2019-01-30
机器学习 -- keras
2019-01-30
机器学习 -- Unsupervised Learning: Principle Component Analysis
2019-01-30
机器学习 -- 回归
2019-01-30
机器学习 -- Structured Learning
2019-01-30
机器学习 -- Unsupervised Learning: Neighbor Embedding
2019-01-30
机器学习 -- Unsupervised Learning: Deep Auto-encoder
2019-01-30
机器学习 -- Semi-supervised Learning
2019-01-30
机器学习教程 -- Transfer Learning
2019-01-30
机器学习教程 - Unsupervised Learning: Word Embedding
2019-01-30
深度强化学习 - Actor-Critic
2019-01-30
深度强化学习 - Imitation Learning
2019-01-30
深度强化学习 - Proximal Policy Optimization (PPO)
2019-01-30
深度强化学习 - QLearning
2019-01-30
深度强化学习 -- Sparse Reword介绍
2019-01-30
机器学习个人笔记完整版
2019-01-30
神经网络和深度学习
2019-01-30
斯坦福大学 - 深度学习基础教程
2019-01-30
支持向量机通俗导论 -- 理解SVM的三层境界
2019-01-30
算法教程 - Jeff Erickson
2019-01-30
QEMU 作为PLC虚拟化平台 -- 从网络安全角度分析
2019-01-30
Wind River Linux用户手册 5.0.1
2019-01-30
Xenomai 3 - Linux实时框架介绍
2019-01-30
英飞凌inifneon C166指令集的C编译器,哪种普及最广?
2020-05-12
VSCODE打开大文件后,搜索symbol无反馈
2017-12-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人