tag 标签: 嵌入式

相关博文
  • 2023-9-25 14:53
    153 次阅读|
    0 个评论
    经过认证的工具链对安全关键型应用意味着什么?
    安全关键型应用,在很多人看来是个专业的词汇,但其实它离我们的日常生活很近,比如汽车驾驶系统、飞机控制系统、电梯运行系统、医疗设备等与我们息息相关的事物都可以纳入安全关键型应用的范畴。 对于这类应用,通用的或者领域相关的安全标准都有着明确的认证规范,甚至开发这类应用的工具链也必须以某种方式经过认证,以确保其适用于这些安全相关的开发。本文将介绍用于安全关键型开发的工具链获得认证的意义,以及您如何在自己的安全相关项目和应用中利用这种认证支持。 嵌入式功能安全标准 安全认证的正式标准已经发布多年,但在过去的几年中,特别是在嵌入式领域,人们对这些标准的兴趣和实际使用程度正在显著增加。人们对认证和经过认证的终端产品的兴趣日益浓厚,部分原因是法律要求,但对生产企业来说,获得安全认证意味着获得市场竞争力。 与许多功能安全相关的国际综合标准 IEC 61508 ,经过了多次修订,于 2010 年发布了第二版。这个标准以及它所衍生的标准,现在广泛应用于对可靠性和安全性有要求的行业,如过程工业、铁路和自动化等,比如 ISO 26262 用于汽车领域、 EN 50128 用于铁路应用、 IEC 62304 用于医疗软件和医疗设备。 认证和验证 如果您即将启动一个具备安全关键功能或功能安全要求的项目,您可能已经意识到您所使用的开发工具必须以某种方式经过资格认证,以适用于与安全相关的开发。认证开发工具的具体要求取决于您所遵循的标准,在某种程度上也取决于产品故障可能引发的严重程度。这还与工具的性质有关,例如,生成进入产品的代码的编译器比源代码度量工具更难认证,而源代码度量工具比版本控制系统或需求管理系统更难认证。 不同的标准对安全完整性(即产品的关键程度)有不同的定义,并且这些标准在工具的分类上也有所不同。 以 IEC 61508 为例,它规定了编译器等工具需要经过认证,尽管并没有明确定义“认证”的具体含义。此外, 该标准还要求工具必须经过验证,以确保它们符合相关的规范或文档。 最糟糕的情况是, 这意味着您必须在自己的项目中全面测试工具,除非能够提供其已经过测试的充足证据。 此外,您还需要评估项目对工具的依赖程度。 还要考虑和评估的另一件事情是工具供应商支持工具的能力,最好能够在安全关键产品的整个生命周期内提供支持。 所有这些事情集中在一起可能会给您带来相当大的工作量,而这还只是涉及一个工具和一个项目 ...... 从另一个方面来讲,这正是 IAR 的工具链获得认证的原因所在。 获得认证和验证! IAR 用于安全关键开发 的工具获得认证到底意味着什么呢?它意味着您为证明工具的使用合理性而必须做的工作量将大大减少。 因为独立的第三方机构 TÜV SÜD 已经对 IAR 的开发活动、问题处理程序以及测试和验证活动进行了评估,并认证了 IAR 的工具符合 IEC 61508 、 ISO 26262 、 EN 50128 和 IEC 62304 等安全标准的要求。这些工具包括 IAR Embedded Workbench for Arm 、 RISC-V 、 STM8 、 Renesas RX 、 RL78 和 RH850 等。这也意味着,如果您选择 C 或 C++ 作为编程语言, IAR 的工具链是一个绝佳的选择。 延续性服务 那么,如果选择了经过认证的工具,就完事大吉了吗? 还要考虑的一个重要事情是您需要的支持程度以及您可以从工具链获得的支持程度。这不仅仅限于项目开发期间,还包括产品的整个生命周期。 如果工具旧了并且被新版本取代,工具供应商不一定会在旧版本工具上继续支持您。这种立场与典型的安全相关项目的需求背道而驰,因为在这些安全相关项目中,应尽量避免工具的更新。 如果之前认证过的工具的更新不仅仅包含错误修复( Bug Fix ),还包含功能更新,那么仅接受错误修复是没有用的,因为需要对工具更新进行重新认证或者进行详细的影响分析以及测试。 通过与开发安全相关且具有高可用性要求的软件或服务的客户多年合作, IAR 了解到,对“冻结”版本的支持至关重要。“冻结”版本指的是只接受错误修复而永远不添加新功能的工具版本。这种版本可以根据需要保持活跃并得到支持。过去, IAR 为需要特定“冻结”版本和相关支持服务的客户量身定制了特殊合作协议。现在,通过认证, IAR 有机会以简化的方式为所有使用 IAR Embedded Workbench 功能安全版本的客户提供“冻结”版本和相关支持服务。 全面支持和保护 IAR 的安全解决方案包含了以下主要内容。 l IAR Embedded Workbench 功能安全版本: 已获认证和冻结的工具特定版本,包括 IAR Embedded Workbench for Arm 、 RISC-V 、 STM8 、 RL78 、 RX 和 RH850 。 l TÜV SÜD 的认证报告: 详细说明了认证的有效性。 l 安全指南: 用各种安全标准的术语来说,这是一本安全手册,旨在指导如何在安全相关开发中使用工具链。该指南涵盖了从安装工具链时需要考虑的事项到如何处理语言扩展和编译器编译指示。 l 功能安全支持和更新协议: 包括对已经过认证版本的支持以及预先认证的错误修复更新,只要客户的协议仍然有效。 l 定期更新: 对工具链中已知问题的信息进行定期更新。 总结 综上所述,选择经过认证的工具链可以使您轻松地在安全相关项目中使用它,选择包含适当支持服务的工具可以使您的工具选择和投资更具价值。 此外,即使您的产品没有直接的安全要求,但如果需要满足各种高完整性或高可用性要求,功能安全支持服务同样非常有用。
  • 热度 1
    2023-9-20 10:57
    188 次阅读|
    0 个评论
    一、实验目的 了解FFT的作用,掌握FFT 算法的算法原理、计算量和算法特点,实现FFT算法并通过CCS图形窗口查看结果。 官方网站:www.tronlongtech.com 二、实验原理1、傅里叶变换 傅里叶变换可以将一个信号从时域变换到频域。时域信号在经过傅立叶变换的分解之后,变为了不同正弦波信号的叠加,我们再去分析这些正弦波的频率,可以将一个信号变换到频域。有些信号在时域上是很难看出什么特征的,但是如果变换到频域之后,就很容易看出特征了。这就是很多信号分析采用FFT变换的原因。 2、离散傅里叶变换 离散傅里叶变换作为信号处理中最基本和最常用的运算,在信号处理领域占有基础性的地位,如果直接按照离散傅里叶变换的公式进行计算,求出N点X(k)需要N^2次复数运算、N(N-1)次复数加法,当N很大时,运算量是非常大的,这对于实时处理是无法接受的。 3、FFT算法 傅里叶快速算法的提出,使傅里叶变换成为一种真正实用的算法。根据傅立叶变换的对称性和周期性,我们可以将DFT运算中有些项合并。 在计算机上进行的DFT,使用的输入值是时域的信号值,输入采样点的数量决定了转换的计算规模。变换后的频谱输出包含同样数量的采样点,但是其中有一半的值是冗余的,通常不会显示在频谱中,所以真正有用的信息是N/2+1个点。FFT算法的原理是通过许多小的更加容易进行的变换去实现大规模的变换,降低了运算要求,提高了与运算速度。FFT不是DFT的近似运算,它们完全是等效的,FFT的过程大大简化了在计算机中进行DFT的过程。 4、程序流程 程序流程设计中首先产生测试信号,接着确定FFT基和旋转因子,然后进行FFT和FFT逆变换运算,最后输出FFT结果 5、数字信号处理库 本实验中的FFT算法是基于TI提供的数字信号处理库完成的。 DSPLIB 包含优化的、C语言可调用的通用信号处理例程,用于计算密集型实时应用程序。 调用这些例程的运行速度比直接用C语言编写的等效代码快得多,可以缩短应用程序开发时间。实验中使用的是 dsplib_c674x_3_4_0_0 。 6、dsplib_c674x_3_4_0_0 在CCS5.5 的安装路径安装DSPLIB后,会有相应的文件夹出现,包含组件库、头文件、测试示例和源码等。 7、函数源码FFT运算函数 程序使用DSPLIB 的库来进行FFT运算,调用的程序源码和使用说明可以安装DSPLIB后 查看。 调用的FFT函数中: 第一个参数是样本中FFT 的长度; 第二个参数是指向数据输入的指针; 第三个参数是指向复杂旋转因子的指针; 第四个参数是指向复杂输出数据的指针; 第五个参数是指向包含64 个条目的位反转表的指针。如果样本的FFT长度可以表示为 4 的幂; 第六个参数是4,否则 第六个参数是 2 ; 第五个参数是从主FFT开始的样本中的子 FFT偏移索引 。; 第六个参数是样本中主FFT的大小。 FFT逆变换函数 程序使用DSPLIB 的库来进行FFT逆变换,调用的程序源码和使用说明可以安装DSPLIB后查看。 调用的IFFT函数中: 第一个参数是样本中FFT 的长度; 第二个参数是指向数据输入的指针; 第三个参数是指向复杂旋转因子的指针; 第四个参数是指向复杂输出数据的指针; 第五个参数是指向包含64 个条目的位反转表的指针 ; 如果样本的FFT长度可以表示为 4 的幂,第六个参数是4,否则第六个参数是2 ; 第七个参数是从主FFT开始的复杂样本中的子FFT偏移索引 ; 第八个参数是样本中主FFT的大小。 8、二进制位翻转 FFT和FFT 逆变换函数中的第五个参数brev是指向包含64个表项的位反转表的指针,因此程序中需要提供64个表项,程序中的位反向表是计算出来的,可以通过代码提前转换的。 采用位反转的原因是因为FFT算法的蝶形内部两点交叉使数据以反转的方式输出而不是数字反转顺序。 二进制位翻转表的原理 首先确认二进制数的位数,64个数只需要有6位的二进制位数; 接着将二进制数分成两部分,前五位一部分,最后一位一部分; 最后进行二进制翻转,把最后一位放到最高位,剩下的五位进行翻转依次放入。 数组内存放的依次是0~63的二进制翻转结果,我们可以来看一个例子, (点击鼠标)以数字5为例,(点击鼠标)转换为二进制数是000101 (点击鼠标)接着进行二进制翻转,将“00010”看为一个部分,“1”看为一个部分,那么将“1”放到第一位,然后将后面的数据翻转过来进行放置即可 (点击鼠标)最后进行十六进制转换得到0x28,所以在数组的第6个数字为0x28。 三、操作现象 导入工程,选择Demo文件夹下的对应工程 编译工程,生成可执行文件 将CCS连接实验箱并加载程序 程序加载完成后点击运行程序 运行程序后,程序执行完成后会在断点处停下。 Single Time"选择单时域信号图,在弹出的界面设置相关参数,可查看DSP计算的FFT结果。 FFT Magnitude",在弹出的界面设置相关参数,可查看CCS计算的FFT结果。 对比后,可发现CCS和DSP计算的FFT结果相同, 实验结束后,点击红色按钮退出CCS与实验箱的连接,最后实验箱断电即可。
  • 2023-9-14 17:30
    34 次阅读|
    0 个评论
    从Network-Manager切换到dhcpcd ::: warning 切换到dhcpcd后WiFi配置将会丢失,如果使用ssh通过WiFi连接到设备请先使用raspi-config配置好WiFi后再进行切换 ::: sudo systemctl enable dhcpcd sudo systemctl start dhcpcd sudo systemctl stop NetworkManager sudo systemctl disable NetworkManager dhcpcd.conf 在/etc/dhcpcd.conf保存了常见的dhcpcd配置,可以此文件中设置静态IP、优先级等 设置静态IP 示例: #Example static IP configuration: interface eth0 static ip_address=192.168.0.10/24 #static ip6_address=fd51:42f8:caae:d92e::ff/64 static routers=192.168.0.1 static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1 ipv6一般不使用,可以不配置 根据设置网段选择子网掩码,一般都为24 设置网络优先级 示例: 将WiFi的网络优先级设置为200,值越小优先级越高 interface wlan0 metric 200 禁止DHCPCD管理网络 示例:禁止dhcpcd管理4G wwan0,配置后dhcpcd不会再管理wwan0 denyinterfaces wwan0 4G 使用dhcpcd管理网络,拨号4G需要安装一个BSP包 sudo apt update sudo apt install ed-ec20-qmi sudo systemctl enable lte-reconnect sudo systemctl start lte-reconnect 安装并使能服务后重新开机即可自动拨号 如果发现一直没有4G网络,可以参考 dhcpcd 使用介绍
  • 2023-9-8 17:15
    36 次阅读|
    0 个评论
    raspi-config 使用raspi-config可以十分方便的配置一些树莓派系统常用配置,下文介绍其中一些常用的配置 sudo raspi-config 系统设置设置WIFI ::: tip 此项配置仅作用于使用dhcpcd的用户,使用Network Manager无效!!! ::: S1 Wireless LAN 如果还未设置国家,会弹出要求选择国家的选项,在此处选择中国的国家代码CN 按照要求输入SSID,即WiFi的用户名,然后输入PASSWORD,即WiFi密码 修改密码 S3 Password 修改用户密码 修改HOSTNAME S4 Hostname 可以在此处直接修改Hostname,保存重启后生效 接口设置使能SSH I2 SSH选择yes使能SSH 使能VNC I3 VNC选择yes使能VNC 使能SPI I4 SPI选择yes使能SPI 使能I2C I5 I2C选择yes使能I2C 使能调试串口 I6 Serial Port选择no然后选择yes使能调试串口 地区个性化配置时区设置 默认为标准国际时间,国内时间需要修改 L2 Timezone选择Asia然后选择shanghai或者其他国内城市,设置后保存退出,此时时间即调整为北京时间 修改键盘布局 L3 Keyboard在键盘中选择美式键盘或者中式键盘,保存生效 高级设置设置代理 A5 Network Proxy Settings然后选择需要的代理即可 设置启动方式 A6 Boot Order可以设置启动方式 B1 SD Card Boot Boot from SD Card if available, otherwise boot from USB B1为默认从SD卡启动 B2 USB Boot Boot from USB if available, otherwise boot from SD Card B2为默认从USB启动 B3 Network Boot Boot from network if SD card boot fails B3为默认从网络启动 设置BOOTLOADER版本 A7 Bootloader Version可选两种Bootloader版本,分别是最新版本、出厂版本 raspi-config 常用配置介绍
  • 2023-9-5 10:51
    242 次阅读|
    0 个评论
    1、实验目的 本次实验操作教程是基于创龙教仪DSP教学实验箱:TL6748-PlusTEB演示录制的。 本次实验的目的是了解AAC音频格式,掌握AAC音频编码的原理,并实现将WAV格式的音频编码为AAC格式。 2、实验原理 音频编解码的主要对象是音乐和语音,音频的编解码格式可分为无压缩的格式、无损压缩格式、有损音乐压缩格式、有损语音压缩格式和合成算法。 本实验中使用的AAC格式属于有损音乐压缩格式。音频编解码的目的是减少传输的信息量和减少储存的信息。 音频编解码格式分类 AAC高级音频编解码,最初是基于MPEG-2的音频编码技术,目的是取代MP3格式。2000年,MPEG-4标准出台,AAC重新集成了其它技术,为区别于传统的MPEG-2 AAC,故含有SBR或PS特性的AAC又称为MPEG-4 AAC。 AAC是新一代的音频有损压缩技术,它通过一些附加的编码技术,衍生出了LC-AAC,HE-AAC,HE-AACv2三种主要的编码。其中LC-AAC就是比较传统的AAC,相对而言,主要用于中高码率,HE-AAC主要用于中低码,而新近推出的HE-AACv2主要用于低码率。事实上大部分编码器设成 48Kbps就不加PS,就相当于普通的HE-AAC。 AAC共有9种规格,以适应不同的场合的需要:目前使用最多的是LC和HE,适合低码率。 流行的Nero AAC编码程序只支持LC,HE,HEv2这三种规格,编码后的AAC音频,规格显示都是LC。HE其实就是AAC(LC)+SBR技术,HEv2就是AAC(LC)+SBR+PS技术。 3、操作现象硬件连接 本实验所需硬件为实验板、仿真器和电源。 连接仿真器和电脑的USB接口。 将创龙教仪TL6748-PlusTEB教学实验箱拨码开关拨到DEBUG模式01111,连接实验箱电源,拨动电源开关上电。 3、实验现象 导入工程,选择Demo文件夹下的对应工程。 编译工程,生成可执行文件。 将CCS连接实验箱并加载程序。 点击运行程序。 运行程序后,Console 窗口会打印信息。 大概等待5分钟,编码完成。 可看到工程目录下的song.wav文件编码生成的song.aac文件。 使用播放器播放song.aac,其效果和原WAV文件播放效果一致。
相关资源