杂谈

最近看mini2440,读了一些高手的文章,来写写自己的感受

首先是关于 nand flash, nor flash,ram  sram   cache cpu

           nand flash 只有数据线和地址线是一样的, nor flash是分开的,所以 arm板中可以从nor flash中启动,从nand flash中启动的时候必须要将代码拷到ram中去,然后从ram中启动。分开好操作,速度快嘛。nand flash 价格比nor flash便宜,这个是优点。在将代码拷到ram中去的时候,会有一个将ram的地址重新映射的过程,而程序从 nor flash启动的时候是不需要重新映射的,因为程序就是在nor flash中执行了,这个时候和ram没关系。

          ram 就是内存了,执行速度快。sram是执行速度最快的一种了,所以cache就是用sram来做的。程序在运行的时候,ram中的地址映射到cpu,cpu在执行的的时候,会把当前执行的那段代码数据地址,代码地址拷贝在cache中,这是因为cache的运行速度更快,比内存快多了(三者的速度 cpu>cache>ram)。由于cache的存在,这又会产生一个问题(个人理解),程序优化问题:当程序运行的时候,cpu发出一个地址指令,如果在cache捕捉到这个已经保存的地址的时候,就会在cache中操作已经保存的数据的备份啊之类的。。这个时候如果其它的线程改变了某个变量,cpu是不会知道的,所有c语言中有一个volatile关键字---每次读取都从内存中读数据。比如说,在中断中被改变的量 最好就加上这个关键字,好多例子就不举了。

        c程序编译后 分为 代码段,只读数据段,已初始化读写数据段 未初始化读写数据段, 堆 和栈,这里面好多学问啊。。

       C语言程序在内存中的运行情况 - huanghl97 - huanghl97

          这张图是别人的, 其中 char s[] = ''abcdef"和 char *p2=“123456”这里面有个细节问题,比如说在一个函数

        funa()

     char s[] = "abcdef";

    return s;

 }

           funb()

{

      char*p2 = "123456";

      return p2;

}

如果你在主函数中调用这两个函数打印出字符串的话,p2可以打印出来,s却不能打印出来。这里面需要知道,字符串是在常量区里面的,当以建立一个数组的时候是在栈中开辟了一个区域,存储的是这个字符串常量的一个备份,记住是备份。当函数执行完之后,会返回一个指向这个数组的指针,但是整个数组已经被编译器给释放了。而p2却可以,虽然p2也是在栈中开辟的,但是p2存储的是这个字符串常量的在静态区的指针,调用完该函数之后,p2的值返回被接收,p2被释放掉。

另一个问题是关于指针的问题, char**p;

                                                   char a[3][3];

                                                    p=a;

这个语句在c++中会编译出错,在c中编译会出现警告,正确的应该是 char (*p)[3];  p=a;

  这个括号应该不能丢(我看到百度文库一个ppt中没有写这个括号),丢了之后表示的是一个指针数组,由于括号的优先级高,所以这里面p指向的是一个数组,该数组包含三个元素,p[0]就是a[0]   p[1]就是a[1]。因为a在这个二维数组中表示的包含3个元素的数组的地址。直接写p=a是不行的,p是一个指向字符指针的指针,a是指向数组的指针,关于这部分内容 在c和指针这本书8.2.4中有讲到。



1. 用户与身体信息管理模块 用户信息管理: 注册登录:支持手机号 / 邮箱注册,密码加密存储,提供第三方快捷登录(模拟) 个人资料:记录基本信息(姓名、年龄、性别、身高、体重、职业) 健康目标:用户设置目标(如 “减重 5kg”“增肌”“维持健康”)及期望周期 身体状态跟踪: 体重记录:定期录入体重数据,生成体重变化曲线(折线图) 身体指标:记录 BMI(自动计算)、体脂率(可选)、基础代谢率(根据身高体重估算) 健康状况:用户可填写特殊情况(如糖尿病、过敏食物、素食偏好),系统据此调整推荐 2. 膳食记录与食物数据库模块 食物数据库: 基础信息:包含常见食物(如米饭、鸡蛋、牛肉)的名称、类别(主食 / 肉类 / 蔬菜等)、每份重量 营养成分:记录每 100g 食物的热量(kcal)、蛋白质、脂肪、碳水化合物、维生素、矿物质含量 数据库维护:管理员可添加新食物、更新营养数据,支持按名称 / 类别检索 膳食记录功能: 快速记录:用户选择食物、输入食用量(克 / 份),系统自动计算摄入的营养成分 餐次分类:按早餐 / 午餐 / 晚餐 / 加餐分类记录,支持上传餐食照片(可选) 批量操作:提供常见套餐模板(如 “三明治 + 牛奶”),一键添加到记录 历史记录:按日期查看过往膳食记录,支持编辑 / 删除错误记录 3. 营养分析模块 每日营养摄入分析: 核心指标计算:统计当日摄入的总热量、蛋白质 / 脂肪 / 碳水化合物占比(按每日推荐量对比) 微量营养素分析:检查维生素(如维生素 C、钙、铁)的摄入是否达标 平衡评估:生成 “营养平衡度” 评分(0-100 分),指出摄入过剩或不足的营养素 趋势分析: 周 / 月营养趋势:用折线图展示近 7 天 / 30 天的热量、三大营养素摄入变化 对比分析:将实际摄入与推荐量对比(如 “蛋白质摄入仅达到推荐量的 70%”) 目标达成率:针对健
### 智能车技术最新进展 智能车技术近年来取得了显著进步,尤其是在自动驾驶领域。长城汽车于2021年6月推出的咖啡智能2.0智慧线控底盘整合了多个核心底盘系统,包括线控转向、线控制动、线控换挡、线控油门和线控悬挂,成为国内首个支持L4+级自动驾驶的线控转向底盘系统[^4]。 此外,中航集团旗下的耐世特也在2018年发布了SBW技术,并推出了静默方向盘系统及随需转向系统,这些技术支持L3+级自动驾驶。这表明在高级别自动驾驶方面,国内外厂商都在积极布局并取得了一定的技术突破。 与此同时,新能源汽车市场的快速发展也为智能车技术提供了更多可能性。根据外媒CleanTechnica统计的数据,比亚迪、特斯拉和上汽通用五菱分别以506,868辆、406,869辆和183,054辆的销量位居前列,占据了全球新能源汽车市场约34%的份额[^3]。这种市场需求的增长推动了智能车技术的研发与应用。 值得注意的是,随着深度学习技术的进步及其广泛应用,人工智能伦理和社会影响逐渐引起重视。确保人工智能技术发展既能提升社会福祉又能规避潜在风险已成为重要议题[^2]。这一趋势同样适用于智能车领域,特别是在数据隐私保护、算法公平性和安全性等方面需要持续关注。 ```python class AutonomousDrivingSystem: def __init__(self, level): self.level = level def describe(self): if self.level >= 4: return f"L{self.level} autonomous driving system with full automation capabilities." elif self.level == 3: return f"L{self.level} autonomous driving system requiring driver attention but capable of handling most situations autonomously." else: return f"Lower-level ({self.level}) autonomous assistance features." # Example usage ad_system_l4 = AutonomousDrivingSystem(4) print(ad_system_l4.describe()) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值