我是靠谱客的博主 个性小伙,这篇文章主要介绍python字典的底层_AUTOSAR再理解+Python字典,现在分享给大家,希望可以做个参考。

107c5f8813b26e8f64d2558fd300fc36.gif 6380c6b67b84ef429fbd631042950277.gif c61e8c6fd5fe586f8c11f66c35a8d63b.png 5c8ac4329e617fff2386ae7c5faf7245.png AUTOSAR再理解

今天对AUTOSAR的基本结构进行了再学习:

参考地址:

https://zhuanlan.zhihu.com/p/118849539
https://blog.csdn.net/xyfx_fhw/article/list

今年主要的工作内容是进行功能安全代码的测试,其实前两个月学习了AUTOSAR工具链的基本配置后,后面都没有做过相关工作;

今天把AUTOSAR的基本构成和原理再看了一下,又有了些不一样的认识:

AUTOSAR:汽车开放系统架构

    通过AUTOSAR,可以将软硬件进行隔离,不管是怎么样的硬件类型,都无需对底层代码做大的更改,而是通过配置AUTOSAR,这样的方式提高了代码的重用性。用户只用写一套好的底层,实现了软硬件的驱动封装(类似于STM32的库,以及TC277中的ILLD)就可以完成各个不同的MCU配置;这就是标准化的意义。

举一个例子:

对于一个寄信的操作,我们一般分为:

寄信人写信->投入信箱->将信收集至邮局分类->信封的运输->邮递员送信->收件人打开信封读信

对于这整个流程而言

①寄信人+邮筒+邮局就相当于ECU,整个的功能就是将信传递给收信人看。

②写信人是应用软件,我们调用写信人就知道它决定的收信人对象,是关乎亲情友情还是爱情;

③邮筒是连接底层与应用层的接口,邮递员能够从邮筒中取到信封并传递给收信人;

④邮局是底层,通过它来调用邮递员传递寄信人与收信人的信封;

⑤收件人是另一个ECU,用于与第一个ECU进行信息交换;

⑥连接两个邮局之间的运输工具可以看作两个ECU间的总线;

⑦那么信封就可以看作总线上传递的数据,即报文信息;

AUTOSAR一共分为AppL、BSW以及RTE三层;

    配置好AppL后在达芬奇中即可自动生成RTE,同时BSW需要针对我们的硬件去做相应的配置。

    在达芬奇 configurator pro中配置除MCAL(英飞凌系列的标准库,静态代码)外的内容,并生成RTE。

    在达芬奇 Developer用于生成应用层程序架构,我司目前主要通过simulink进行AppL层的配置。

    可能会有疑问,在这样的情况下,我们使用AUTOSAR进行配置,同样需要进行底层和AppL层的配置;为什么还要使用AUTOSAR呢,这是因为AUTOSAR作用是将软硬件进行隔离,没有AUTOSAR做隔离的情况下,软硬件的耦合度会非常大,这样更改硬件的情况下,软件就需要做非常大的变动更改。

    当然,对于一般的嵌入式产品来说,功能相对很单一,不需要AUTOSAR这样通用的功能,对于有能力的功能师而言,使用AUTOSAR就会显得十分繁琐低效。而且维克多生成的代码看都看不懂,维护起来更是麻烦。

另:今天搞懂了一个概念;

底层代码:主要是针对MCU芯片的控制,直接访问硬件的接口;设置通信、驱动等功能;它不针对特定的应用,具有很好的重用性,能够用于很多应用系统

应用层代码:不考虑硬件的限制和条件,只考虑应用的实现和算法逻辑。

2python-字典   

1、字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值 key=>value 对用冒号 : 分割,每个对之间用逗号(,)分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2, key3 : value3 }

2、键必须是唯一的,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字。

3、del dict['Name'] # 删除键

'Name' dict.clear() # 清空字典

del dict # 删除字典

4、字典的特性

字典值可以是任何的 python 对象,既可以是标准的对象,也可以是用户定义的,但键不行,其有两个重要特性:

①不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

②键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

    1)字典类型的结构:

26a5d76abe8acdf997355a81d03e3cc4.png

    2)通过键来访问数值:

96580286766246d0dadd2ace9cddcfe4.png

    3)Python中键的内置函数:

8b314ec083093ab3a0f26c8ab2ab9a8b.png

    4)如下一个代码实例中:

confusion = {}confusion[1] = 1confusion['1'] = 2confusion[1] += 1sum = 0for k in confusion:sum += confusion[k]print(sum)

由于键具有唯一性,后面的1的会覆盖前面的1,此时字典内只有"1":2和1:2取出相加等于4,所以输出结果应该为4。

5596eb4b2d681e8b97e193ab697262e9.png 9148992e45a0cc32ea80ddea9114b5ef.png日工作记录 29ea72afaf5d0170c6479327159460aa.gif 01141d4e554aa924f2905d9ef52e1f61.png

60f1624cbe32eac9d799978129bb8ce4.png

公众号ID: gh_dc943d9de6b5扫码关注最新动态 1b875b251a8f20d4227a1d542ae73bf9.png

最后

以上就是个性小伙最近收集整理的关于python字典的底层_AUTOSAR再理解+Python字典的全部内容,更多相关python字典内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(117)

评论列表共有 0 条评论

立即
投稿
返回
顶部