楚小云 / 小云问答 / 问答详情

国外的社会到底是怎样的?

2023-07-11 09:38:27
真颛

国外的人们都生活在水生火热之中啊!天天吃不饱,穿不暖的!有了上顿没下顿!孩子上不起学,喝不起奶粉!连房子都买不起啊!哪像我国,人民个个生活的有声有色,安居乐业,最主要的是:我们的动车很安全,至少你们信不信,反正我是信的!

牛云

观察的结论也不一定靠得住!

有一个建议相信适合楼主:

1、移民国外的中国人都是什么人?其家庭的能力(经济、文化水平等方面)如何?移民后的生活如何?有没有想过重返祖国?等等。

2、移民的目的地是哪里?那里的经济、教育等发展水平怎么样?

明白了这些问题,相信楼主就会得出自己的答案!

相关推荐

科思股份上市时间

科思股份(证券代码:300856)将于2020年7月22日登陆创业板。科思股份本次公开发行股票2,822万股,其中公开发行新股2,822万股,发行价格30.56元/股,新股募集资金8.62亿元,发行后总股本11,288万股。科思股份主要从事日用化学品原料的研发、生产和销售。2019年度,公司实现营业收入11亿元,净利润15,369.84万元。科思股份成立于2000年4月,主要从事日用化学品原料的研发、生产和销售,产品涵盖化妆品活性成分及其原料、合成香料等。科思股份现拥有两大生产基地,分别位于江苏省宿迁市和安徽省马鞍山市,其中下属马鞍山工厂—安徽圣诺贝化学科技有限公司为按照原料药GMP标准体系建设,并已通过美国FDA现场审计。多年来,科思股份坚持以市场为导向的经营方针,目前已在相关领域具备领先的工艺技术、研发水平和产品品质,拥有众多优质客户资源。产品主销欧美地区,主要产品均占据了同类产品的较大市场份额。
2023-07-11 07:15:491

2012年北京市一级建造师初始注册名单(第三批)

建市施函[2012]31号   根据《注册建造师管理规定》(建设部令第153号)和《关于印发一级建造师注册实施办法>的通知》(建市[2007]第101号),经审核,赵彦斌等1720人符合一级建造师初始注册条件,李莉莉等143人不符合一级建造师初始注册条件;史喜明等295人符合一级建造师增项注册条件,王岩等8人不符合一级建造师增项注册条件;闫红梅等17人符合一级建造师重新注册条件。   现在住房和城乡建设部网站(http://www.mohurd.gov.cn)、中国建造师网(http://www.coc.gov.cn)上予以公示,公示截止日期为2012年5月2日。   一、如对不符合一级建造师注册条件的名单有异议,申请人可在公示期间下载填报《注册申诉表》,以书面形式提供陈述材料,经省级注册管理机构审核、确认并加盖印章后统一报送住房和城乡建设部执业资格注册中心,逾期不予受理。   联系地址:北京市海淀区甘家口21号楼2层   邮政编码:100037   联系电话:010-68318963,68317359   联系传真:010-68317359   二、任何单位和个人在公示期内均可对符合一级建造师注册条件的人员向我司举报,举报或反映的情况应实事求是。以单位名义反映情况的,应加盖单位公章;以个人名义反映情况的,应署真实姓名和联系电话。   联系地址:北京三里河路9号   邮政编码:100835   联系电话:010-58933869   联系传真:010-58933913     住房和城乡建设部建筑市场监管司 二〇一二年四月十七日 省份 企业名称 姓名 资格证书号 资格证书专业 申请注册专业 审核通过专业 审核理由 北京市 北京北控电信通科技发展有限公司 赵彦斌 318174 机电 机电 机电 同意 北京市 北京城建北方设备安装有限责任公司 廖岗 318530 机电 机电 机电 同意 北京市 北京城建长城伟业装饰工程有限责任公司 王文刚 293636 建筑 建筑 建筑 同意 北京市 北京城建集团有限责任公司 陈艮才 101578 公路 公路 公路 同意 北京市 北京城建集团有限责任公司 王振玲 227702 公路 公路 公路 同意 北京市 北京城建六建设工程有限公司 王贵忠 293608 建筑 建筑 建筑 同意 北京市 北京城建六建设工程有限公司 向天星 294781 建筑 建筑 建筑 同意 北京市 北京城建十建设工程有限公司 莫亚光 294808 建筑 建筑 建筑 同意 北京市 北京城建十建设工程有限公司 王旭 294407 建筑 建筑 建筑 同意 北京市 北京城建亚泰建设工程有限公司 刘新宇 227727 公路 公路 公路 同意 北京市 北京城建亚泰建设工程有限公司 张大鹏 227571 公路 公路 公路 同意 北京市 北京城乡一建设工程有限责任公司 王智 52342 建筑 建筑 建筑 同意 北京市 北京春晖电气设备有限责任公司 田爱民 265061 建筑 建筑 建筑 同意 北京市 北京大信施装饰工程有限公司 李文凯 300856 建筑 建筑 建筑 同意 北京市 北京东方园林股份有限公司 杨伟才 246192 市政 市政 市政 同意 北京市 北京方正建设工程管理有限公司 田富春 160950 公路 公路 公路 同意 北京市 北京恒茂装饰工程有限公司 任小雷 279091 建筑 建筑 建筑 同意 北京市 北京恒泰盛航建设工程有限公司 刘文平 277483 建筑 建筑 建筑 同意 北京市 北京宏翔盛世达科技发展有限公司 甄亚辉 296083 建筑 建筑 建筑 同意 北京市 北京华瑞建筑工程有限公司 王玉新 293655 建筑 建筑 建筑 同意 北京市 北京华顺德电力工程有限公司 宫修忠 318630 机电 机电 机电 同意 北京市 北京华顺德电力工程有限公司 李铁 318636 机电 机电 机电 同意 北京市 北京华顺德电力工程有限公司 刘爱军 318787 机电 机电 机电 同意 北京市 北京华顺德电力工程有限公司 徐孝平 318378 机电 机电 机电 同意 北京市 北京华顺德电力工程有限公司 余刚 318684 机电 机电 机电 同意 北京市 北京华天银河工程造价咨询有限公司 屈华 205569 建筑 建筑 建筑 同意 北京市 北京嘉顺市政公用工程有限公司 李红飞 227673 公路 公路 公路 同意 北京市 北京建工京精大房工程建设监理公司 杜新飞 242773 市政 市政 市政 同意 北京市 北京建工京精大房工程建设监理公司 郑国平 277402 建筑 建筑 建筑 同意 北京市 北京健伦机房工程有限公司 王娇艳 318608 机电 机电 机电 同意 北京市 北京今希城市建筑工程有限公司 赵文强 295315 建筑 建筑 建筑 同意 北京市 北京金桥建筑集团有限公司 吕春光 281657 建筑 建筑 建筑 同意 北京市 北京京铁金龙铁路消防工程有限公司 马健 310513 机电 机电 机电 同意 北京市 北京聚鑫装璜工程有限责任公司 孙万广 292646 建筑 建筑 建筑 同意 北京市 北京磊鑫建筑工程有限公司 杜锦彬 157002 建筑 建筑 建筑 同意 北京市 北京龙源环保工程有限公司 刘伟 293217 建筑 建筑 建筑 同意 北京市 北京路桥瑞通养护中心 吕学春 223147 公路 公路 公路 同意 北京市 北京路桥瑞通养护中心 史东升 227639 公路 公路 公路 同意 北京市 北京路桥瑞通养护中心 王立民 101532 公路 公路 公路 同意 北京市 北京绿迪源园林绿化有限责任公司 陈瑞红 125916 建筑 建筑 建筑 同意 北京市 北京帕克国际工程咨询有限公司 刘光明 293136 建筑 建筑 建筑 同意 北京市 北京强盾系统集成工程有限公司 邓国民 221940 机电 机电 机电 同意 北京市 北京强盾系统集成工程有限公司 王大江 316902 机电 机电 机电 同意 北京市 北京强盾系统集成工程有限公司 赵晓峰 315766 机电 机电 机电 同意 北京市 北京强盾系统集成工程有限公司 周靖华 316983 机电 机电 机电 同意 北京市 北京清尚建筑装饰工程有限公司 张国良 279312 建筑 建筑 建筑 同意 北京市 北京求实工程管理有限公司 付丽君 293312 建筑 建筑 建筑 同意 北京市 北京戎信建筑装饰工程有限公司 张成龙 291592 建筑 建筑 建筑 同意 北京市 北京瑞安特声学装饰工程有限公司 朱飞剑 41935 机电 机电 机电 同意 北京市 北京石油化工工程有限公司 王晓艳 240618 水利 水利 水利 同意 北京市 北京时创工程项目管理有限责任公司 李俊红 52585 建筑 建筑 建筑 同意 北京市 北京市第五建筑工程有限公司 张文春 295103 建筑 建筑 建筑 同意 北京市 北京市东阳建筑工程公司 杨学英 295017 建筑 建筑 建筑 同意 北京市 北京市公路桥梁建设集团有限公司 杨爱斌 227697 公路 公路 公路 同意 北京市 北京市海龙公路工程公司 林卫民 224471 公路 公路 公路 同意 北京市 北京市怀柔区供用电工程安装公司 刘玉成 264275 建筑 建筑 建筑 同意 北京市 北京市市政工程设计研究总院 孙松 35914 市政 市政,建筑 市政、建筑 同意 北京市 北京市顺兴达建筑工程有限责任公司 张云丰 293794 建筑 建筑 建筑 同意 北京市 北京市铁鑫道桥工程有限公司 宋赫 227698 公路 公路 公路 同意 北京市 北京市铁鑫道桥工程有限公司 孙泰岩 227641 公路 公路 公路 同意 北京市 北京市辛迪森建筑装饰工程设计有限公司 彭玉伶 294025 建筑 建筑 建筑 同意 北京市 北京四海消防工程有限公司 窦晖 122911 机电 机电 机电 同意 北京市 北京送变电公司 孙雁翔 318209 机电 机电 机电 同意 北京市 北京送变电公司 徐红刚 318436 机电 机电 机电 同意 北京市 北京送变电公司 张晓阳 310297 机电 机电 机电 同意 北京市 北京泰豪智能工程有限公司 杜志园 319473 机电 机电 机电 同意 北京市 北京天源建筑工程有限责任公司 孙军 294417 建筑 建筑 建筑 同意 北京市 北京天源建筑工程有限责任公司 张立志 293949 建筑 建筑 建筑 同意 北京市 北京维尔京工程造价咨询有限公司 杜明合 156296 建筑 建筑 建筑 同意 北京市 北京文豪宏博尔科技股份有限公司 金立东 293322 建筑 建筑 建筑 同意 北京市 北京欣江峰市政工程有限责任公司 李东梅 227645 公路 公路 公路 同意 北京市 北京新松天润装饰工程有限公司 张帆 264930 建筑 建筑 建筑 同意 北京市 北京鑫大禹水利建筑工程有限公司 纪义胜 240460 水利 水利 水利 同意 北京市 北京鑫大禹水利建筑工程有限公司 牛占 240500 水利 水利 水利 同意 北京市 北京鑫实路桥建设有限公司 高清旺 227586 公路 公路 公路 同意 北京市 北京鑫实路桥建设有限公司 刘艳平 227620 公路 公路 公路 同意 北京市 北京鑫实路桥建设有限公司 刘兆祥 227736 公路 公路 公路 同意 北京市 北京鑫实路桥建设有限公司 赵震坤 227650 公路 公路 公路 同意 北京市 北京鑫旺路桥建设有限公司 范广田 227636 公路 公路 公路 同意 北京市 北京艺力设计工程有限公司 许俊柏 176271 建筑 建筑 建筑 同意 北京市 北京益置建安装饰有限公司 苏德山 294892 建筑 建筑 建筑 同意 北京市 北京煜金桥通信建设监理咨询有限责任公司 苏晓亮 295461 建筑 建筑 建筑 同意 北京市 北京振利建筑工程有限责任公司 邹海敏 294966 建筑 建筑 建筑 同意 北京市 北京中集大房建设监理有限公司 王树武 264613 建筑 建筑 建筑 同意 北京市 北京中建海外装饰工程有限公司 马冬 289395 建筑 建筑 建筑 同意 北京市 北京中水科海利工程技术有限公司 杨伟才 241197 水利 水利 水利 同意 北京市 多维联合集团有限公司 商安发 301751 建筑 建筑 建筑 同意 北京市 华铁工程咨询有限责任公司 桑青春 227677 公路 公路 公路 同意 北京市 石化盈科信息技术有限责任公司 刘智明 263220 通信 通信 通信 同意 北京市 太通建设有限公司 裴培 316718 机电 机电 机电 同意 北京市 天职(北京)国际工程项目管理有限公司 关德胜 158581 公路 公路 公路 同意 北京市 伊耐特(北京)照明股份有限公司 刘今 317930 机电 机电 机电 同意 北京市 伊耐特(北京)照明股份有限公司 谢锦坤 313325 机电 机电 机电 同意 北京市 中港世能电气工程(北京)有限公司 文春强 316089 机电 机电 机电 同意 北京市 中国港湾工程有限责任公司 高庆春 227654 公路 公路 公路 同意 北京市 中国寰球工程公司 罗昊 318232 机电 机电 机电 同意 北京市 中国寰球工程公司 许占合 317449 机电 机电 机电 同意 北京市 中国建筑股份有限公司 邢俊刚 241198 水利 水利 水利 同意 北京市 中国建筑技术集团有限公司 宋伦波 291945 建筑 建筑 建筑 同意 北京市 中国建筑土木建设有限公司 敖长江 236837 铁路 铁路 铁路 同意 北京市 中国交通建设股份有限公司 滕爱国 103454 港航 港航 港航 同意 北京市 中国京冶工程技术有限公司 张志波 227614 公路 公路 公路 同意 北京市 中国路桥工程有限责任公司 桂齐兵 245935 市政 市政 市政 同意 北京市 中国水电建设集团路桥工程有限公司 李向凤 226399 公路 公路 公路 同意 北京市 中国水利水电第二工程局有限公司 李建增 294471 建筑 建筑 建筑 同意 北京市 中国四海控股有限公司 敖建平 265077 建筑 建筑 建筑 同意 北京市 中国四海控股有限公司 刘占慧 227567 公路 公路 公路 同意 北京市 中国铁路通信信号股份有限公司 韩增强 262910 通信 通信 通信 同意 北京市 中国铁路通信信号股份有限公司 郝凤燕 262905 通信 通信 通信 同意 北京市 中国铁路通信信号股份有限公司 孙希艳 262696 通信 通信 通信 同意 北京市 中国铁路通信信号股份有限公司 王彬 262691 通信 通信 通信 同意 北京市 中国铁路通信信号股份有限公司 王涛 262693 通信 通信 通信 同意 北京市 中国铁路通信信号股份有限公司 张克申 262697 通信 通信 通信 同意 北京市 中国铁路通信信号股份有限公司 朱有鹏 262906 通信 通信 通信 同意 北京市 中国土木工程集团有限公司 王会 155653 建筑 建筑 建筑 同意 北京市 中国新兴建设开发总公司 王士超 295292 建筑 建筑 建筑 同意 北京市 中国中铁股份有限公司 渠慎标 226797 公路 公路 公路 同意 北京市 中国中铁航空港建设集团有限公司 李慧慧 294118 建筑 建筑 建筑 同意 北京市 中建二局第三建筑工程有限公司 原跃民 293107 建筑 建筑 建筑 同意 北京市 中交第三公路工程局有限公司 王晨仲 207779 公路 公路 公路 同意 北京市 中交第四公路工程局有限公司 刘金花 227577 公路 公路 公路 同意 北京市 中交第一公路工程局有限公司 邹京 228293 公路 公路 公路 同意 北京市 中交路桥华北工程有限公司 田连民 10499 公路 公路 公路 同意 北京市 中交四公局第三工程有限公司 黄启华 227317 公路 公路 公路 同意 北京市 中交四公局第三工程有限公司 谢建军 227629 公路 公路 公路 同意 北京市 中交隧道工程局有限公司 戴勇 262594 通信 通信 通信 同意 北京市 中交隧道工程局有限公司 谷苇 262884 通信 通信 通信 同意 北京市 中交隧道工程局有限公司 李林 263233 通信 通信 通信 同意 北京市 中交隧道工程局有限公司 孙立 263003 通信 通信 通信 同意 北京市 中交一公局桥隧工程有限公司 于新山 223086 公路 公路 公路 同意 北京市 中节能六合天融环保科技有限公司 魏志达 318375 机电 机电 机电 同意 北京市 中铁建工集团有限公司 李振宇 245563 市政 市政 市政 同意 北京市 中铁六局集团有限公司 鲁奎 226407 公路 公路 公路 同意 北京市 中铁六局集团有限公司 于铁群 227707 公路 公路 公路 同意 北京市 中铁三局集团第四工程有限公司 石明宾 236727 铁路 铁路 铁路 同意 北京市 中铁十六局集团电务工程有限公司 杨玉龙 318510 机电 机电 机电 同意 北京市 中铁十六局集团路桥工程有限公司 刘迎军 227649 公路 公路 公路 同意
2023-07-11 07:15:581

我的回答怎么又不见了?我没有作弊也没有回答垃圾话啊!我已经等了很久了,都没有出来

您好,如果您确认您已经发出回答且没有显示的话,有以下两种可能性:1 您的回答不符合知道原则,已经被管理员删除。2 您的回答正在进行系统审核,您稍候刷新即可。如何避免问答被删:http://www.baidu.com/search/zhidao_help.html#如何避免问答被删如果您还有问题,请到百度知道投诉吧咨询:http://post.baidu.com/f?kw=%B0%D9%B6%C8%D6%AA%B5%C0%CD%B6%CB%DF
2023-07-11 07:16:064

driverstudio

DriverStudio 是一套用来简化微软Windows 平台下设备驱动程序的开发,调试和测试的 工具包。http://www.google.com/search?hl=zh-CN&q=driverstudio&btnG=Google+%E6%90%9C%E7%B4%A2&lr=lang_zh-CN
2023-07-11 07:16:141

劳动手册办理时遭遇有退工单,但街道处电脑显示本人仍未退工,怎么回事?

可能是单位人事办理时候出现问题,劳动局虽然给盖章了,但是网络上没有办理,具体最好问问你单位人事
2023-07-11 07:16:221

魔兽世界藏宝图

塔纳利斯最下面 找到科尔戈的黄金!这张地图上画着一条对着南方的海滩,图下面用优雅的字体写着……热砂港南边家的南边找到骨头,旗子和旗杆如果你够胆,就去挖挖看挖挖看啊,科尔戈的金子光灿灿!开箱需钥匙,钥匙你会看见你面对的要用血来做交换。
2023-07-11 07:16:331

有金融方面的专家吗?可以推荐一本详细介绍98年金融危机的书吗?

介绍给你一本书,那里有详细介绍98年金融危机的情况的。书名叫《亚洲金融危机告诉了我们什么》,价格也比较便宜,只要用10块钱就可以买到了。
2023-07-11 07:16:442

国民大革命 影响

打垮北洋军阀的统治, 三民主义及社会主义的影响扩大, 革命势力一度发展到长江流域, 产生了蒋介石等新军阀(中央/桂/冯/阎等等).
2023-07-11 07:16:533

帮我们俩算算啊

如果你信迷信的话就是这个:你们两人的爱情指数为86,如果你们在一起开店的话,生意指数为72,生出来的小孩多数为智商较高者.但是你们是真心相爱的话就不要管这些了.
2023-07-11 07:17:024

民国开国纪念币(孙中山像),民国13年一元银元,和北洋造光绪元宝(背面一条龙)值多少钱?请告知,谢

你所说的这几样银币分别有许多的版别,不同版别的价钱是不一样的。普品小头、大头的价在180左右;北洋34在380左右。北洋其它年份的要贵些。
2023-07-11 07:17:221

厨房的玻璃要怎么擦.

需要准备:喷壶、牙膏、白醋、抹布。1、首先在一个喷壶中加入适量的牙膏。2、然后再在喷壶中倒入适量的白醋。3、接下来将喷壶里面的液体喷到厨房的玻璃上面即可。4、下面再取出抹布将厨房玻璃擦拭干净就可以了。5、最后就能够把厨房玻璃擦拭干净了,见下图所示。
2023-07-11 07:17:344

文科选政治历史或政治地理对大学专业选择有何影响?如果想学心理系要报什么?

没什么影响。但是如果文科的话,你基本就只能去文科类的院系,因为文科本来的选择面就比较小。比如我的学校是师范。文科生基本就是:历史,政法,英语,汉语言文学,教科。。。地理在大学基本是属于理科类。心理学属于教育科学学院。
2023-07-11 07:19:062

唐三藏到西天取经,去的是印度,那西方净土,西方极乐世界也指的是印度了?

玄奘法师去的是印度,至于西方极乐世界不在这个世界,而是在这个世界的西方十万亿国土有世界叫极乐,是阿弥陀佛的教化之地。
2023-07-11 07:19:164

英语电影

最适合中学生看的其实挺多的,但是你限制了一下,我就现推荐几个:《歌舞青春》(一共三部)《铁血教练》(又叫《卡特教练》)《重返17岁》《放牛班的春天》就这四个吧,很有诚意的推荐,主要是因为这四个电影讲的都是学生时代的励志故事,讲述的内容也没有一点雷同,意义都很深,青春活泼,积极向上,而且都是锻炼外语的推荐篇目(但是一定要看原声的!!) PS:再推荐一个吧:《录取通知》,讲的是一个高中毕业生的事,超搞笑的。
2023-07-11 07:19:274

已知a^8=9 求a?

a=9^(1/8)=3^(1/4)
2023-07-11 07:19:361

有四道应用题搞不明白,求数学天才速解答,要有具体讲解,不能设x y,回答好重赏!!

1、如果少一个女生,加一个男生则男生为总数的一半说一男生女生相差1+1=2人。如果少【一个男生,加一个女生,男生为女生的一半男女相差1+1+2=4人。女生人数为2×4=8人原来女生8-1=7人原来男生7-2=5人原来一共人数7+5=12人2、6分钟可检票6*30=90人六分钟新来人数6*15人开始时有180-90=90人排队设两个检票口x分钟无人排队2*30x=90+15x x=2 3、9+18+12=39个你把每次合作的人名字写出来,发现每个名字都有两个,那除以2就可里拉4、设甲乙两地的路程为x千米,速度为y千米/小时 (x/y)*(7/8)*(y+2)=x (x/y+2*3)*(y-2)=x x=56 y=16 答:甲乙两地的路程为56千米. 别看又x又y的麻烦,其实第一个式子x可以约下去,就剩y
2023-07-11 07:19:462

广雅、省实初中和高中是不是在同一个校区的?谁知道呢?我想多点了解广雅和省实的初中……

初中广雅好一点,高中省实就全省最好,还有它们不统一个校区的
2023-07-11 07:19:541

CF火线礼包为什么我到等级却领不到枪 我只领到了3选1的那个礼包 我刚刚升级是不是没跟新?

是系统信息更新慢,还有你动作不够快
2023-07-11 07:20:191

摩羯座配什么、什么时候才开始初恋、

就我来说吧。金牛处女比较好。其他的倒是没多大感觉。初恋的话。早的初中或者小学就开始了。看你自己的感情变化和对象咯。
2023-07-11 07:20:433

科思股份上市时间

科思股份(证券代码:300856)将于2020年7月22日登陆创业板。科思股份本次公开发行股票2,822万股,其中公开发行新股2,822万股,发行价格30.56元/股,新股募集资金8.62亿元,发行后总股本11,288万股。科思股份主要从事日用化学品原料的研发、生产和销售。2019年度,公司实现营业收入11亿元,净利润15,369.84万元。科思股份成立于2000年4月,主要从事日用化学品原料的研发、生产和销售,产品涵盖化妆品活性成分及其原料、合成香料等。科思股份现拥有两大生产基地,分别位于江苏省宿迁市和安徽省马鞍山市,其中下属马鞍山工厂—安徽圣诺贝化学科技有限公司为按照原料药GMP标准体系建设,并已通过美国FDA现场审计。多年来,科思股份坚持以市场为导向的经营方针,目前已在相关领域具备领先的工艺技术、研发水平和产品品质,拥有众多优质客户资源。产品主销欧美地区,主要产品均占据了同类产品的较大市场份额。
2023-07-11 07:21:011

中央电视台动物世界是哪国拍的?是从什么时间开始的?

都是国外的科学群体拍摄的
2023-07-11 07:21:151

9+625486848887等于多少?

自己动脑!
2023-07-11 07:21:231

稀土股票有哪些

给你推荐一支尚未以稀土概念爆炒过而实际掌握稀土矿区较大的股票 —— 江西铜业600362 这个股票名号是铜业~但江铜实际掌握有关黄金~白银和稀土的多大型矿区~ 比如国内稀土矿藏四川应该是第二~ 而四川最大的稀土矿区开发权是江铜的~ 奇怪的是江铜对这一巨量概念甚至没有大篇幅介绍过
2023-07-11 07:21:043

在main之前,IAR都做了啥

首先系统复位时,Cortex-M3从代码区偏移0x0000"0000处获取栈顶地址,用来初始化MSP寄存器的值。接下来从代码区偏移0x0000"0004获取第一个指令的跳转地址。这些地址,是CM3要求放置中断向量表的地方。这里是一个程序的启动区的反汇编:__vector_table:08004000 2600 08004002 2000 08004004 7E1D 08004006 0800 这个程序是由IAP程序来启动的,IAP程序获取0x0800"4000处的MSP值(0x20002600),并设置为MSP的值,即主堆栈最大范围是0x2000"0000~0x2000"25FF。接下来IAP程序获取0x0800"4004处的Reset_Handler的地址(0x0800"7E1D),并跳转到Reset_Handler()执行。IAP在这里完全是模仿了Cortex-M3的复位序列,也就是说,在没有IAP的系统上,CM3只能从0x0800"0000获取MSP,从0x0800"0004获取第一条指令所处地址。而IAP就存在在0x0800"0000这个地址上,IAP的启动,已经消耗掉了这个复位序列,所以IAP要启动UserApp程序的时候,也是完全模仿Cortex-M3的复位序列的。接下来我们看看复位后第一句指令——Reset_Handler()函数里有什么。若我们使用的是ST公司标准外设库,那么已经有了现成的Reset_Handler,不过他是弱定义——PUBWEAK,可以被我们重写的同名函数覆盖。一般来说,我们使用的都是ST提供的Reset_Handler,在V3.4版本的库中,可以在startup_stm32f10x_xx.s中找到这个函数:PUBWEAK Reset_HandlerSECTION .text:CODE:REORDER(2)Reset_HandlerLDR R0, =SystemInitBLX R0LDR R0, =__iar_program_startBX R0看来ST没有做太多的事,他只调用了自家库提供的SystemInit函数进行系统时钟、Flash读取的初始化,并把大权交给了__iar_program_start这个IAR提供的“内部函数”了,我们就跟紧这个__iar_program_start跳转,看看IAR做了什么,上面一段代码的反汇编如下:Reset_Handler:__iar_section$$root:08007E1C 4801 LDR R0, [PC, #0x4]; LDR R0, =SystemInit08007E1E 4780 BLX R0;BLX R008007E20 4801 LDR R0, [PC, #0x4];LDR R0, =__iar_program_start08007E22 4700 BX R0;BX R008007E24 6C69 08007E26 0800 08007E28 7D8D 08007E2A 0800 细心的观众会发现地址是0x0800"7E1C,比我们查到的0x0800"7E1D差了1,这是ARM家族的遗留问题,因为ARM处理器的指令至少是半字对齐的(16位THUMB指令集 or 32位ARM指令集),所以PC指针的LSB是常为0的,为了充分利用寄存器,ARM公司给PC的LSB了一个重要的使命,那就是在执行分支跳转时,PC的LSB=1,表示使用THUMB模式,LSB=0,表示使用ARM模式,但在最新的Cortex-M3内核上,只使用了THUMB-2指令集挑大梁,所以这一位要常保持1,所以我们查到的地址是0x0800"7E1D(C=1100,D=1101),放心,我们的CM3内核会忽略掉LSB(除非为0,那么会引起一个fault),从而正确跳转到0x0800"7E1C。从0x0800"7E20处的加载指令,我们可以算出__iar_program_start所处的位置,就是当前PC指针(0x0800"7E24),再加上4,即0x0800"7E28处的所指向的地址——0x0800"7D8D(0x0800"7D8C),我们跟紧着跳转,__iar_program_start果然在这里:__iar_program_start:08007D8C F000F88C BL __low_level_init08007D90 2800 CMP R0, #0x008007D92 D001 BEQ __iar_init$$done08007D94 F7FFFFDE BL __iar_data_init208007D98 2000 MOVS R0, #0x008007D9A F7FDFC49 BL main我们看到IAR提供了__low_level_init这个函数进行了“底层”的初始化,进一步跟踪,我们可以查到__low_level_init这个函数做了些什么,不是不是我们想象中的不可告人。__low_level_init:08007EA8 2001 MOVS R0, #0x108007EAA 4770 BX LR__low_level_init出乎想象的简单,只是往R0寄存器写入了1,就立即执行"BX LR"回到调用处了,接下来,__iar_program_start检查了R0是否为0,为0,则执行__iar_init$$done,若不是0,就执行__iar_data_init2。__iar_init$$done这个函数很简单,只有2句话,第一句是把R0清零,第二句就直接"BL main",跳转到main()函数了。不过既然__low_level_init已经往R0写入了1,那么我们还是得走下远路——看看__iar_data_init2做了些什么,虽然距离main只有一步之遥,不过这中间隐藏了编译器的思想,我们得耐心看下去。__iar_data_init2:08007D54 B510 PUSH {R4,LR}08007D56 4804 LDR R0, [PC, #0x10]08007D58 4C04 LDR R4, [PC, #0x10]08007D5A E002 B 0x8007D6208007D5C F8501B04 LDR R1, [R0], #0x408007D60 4788 BLX R108007D62 42A0 CMP R0, R408007D64 D1FA BNE 0x8007D5C08007D66 BD10 POP {R4,PC}08007D68 7C78 08007D6A 0800 08007D6C 7C9C 08007D6E 0800 看来IAR迟迟不执行main()函数,就是为了执行__iar_data_init2,我们来分析分析IAR都干了些什么坏事~首先压R4,LR入栈,然后加载0x0800"7C78至R0,0x0800"7C9C至R4,马上跳转到0x0800"7D62执行R0,R4的比较,结果若是相等,则弹出R4,PC,然后立即进入main()。不过IAR请君入瓮是自不会那么快放我们出来的——结果不相等,跳转到0x0800"7D5C执行,在这里,把R0指向的地址——0x0800"7C78中的值——0x0800"7D71加载到R1,并且R0中的值自加4,更新为0x0800"7C7C,并跳转到R1指向的地址处执行,这里是另一个IAR函数:__iar_zero_init2:__iar_zero_init2:08007D70 2300 MOVS R3, #0x008007D72 E005 B 0x8007D8008007D74 F8501B04 LDR R1, [R0], #0x408007D78 F8413B04 STR R3, [R1], #0x408007D7C 1F12 SUBS R2, R2, #0x408007D7E D1FB BNE 0x8007D7808007D80 F8502B04 LDR R2, [R0], #0x408007D84 2A00 CMP R2, #0x008007D86 D1F5 BNE 0x8007D7408007D88 4770 BX LR08007D8A 0000 MOVS R0, R0__iar_data_init2还没执行完毕,就跳转到了这个__iar_zero_inti2,且看我们慢慢分析这个帮凶——__iar_zero_inti2做了什么。__iar_zero_inti2将R3寄存器清零,立即跳转到0x0800"7D80执行"LDR R2, [R0], #0x4",这句指令与刚才在__iar_data_init2见到的"LDR R1, [R0], #0x4"很类似,都为“后索引”。这回,将R0指向的地址——0x0800"7C7C中的值——0x0000"02F4加载到R2寄存器,然后R0中的值自加4,更新为0x0800"7C80。接下来的指令检查了R2是否为0,显然这个函数没那么简单想放我我们,R2的值为2F4,我们又被带到了0x0800"7D74处,随后4条指令做了如下的事情:1、将R0指向的地址——0x0800"7C80中的值——0x2000"27D4加载到R1寄存器,然后R0中的值自加4,更新为0x0800"7C84。2、将R1指向的地址——0x2000"27D4中的值——改写为R3寄存器的值——0,然后R1中的值自加4,更新为0x2000"27D8。3、R2自减44、检查R2是否为0,不为0,跳转到第二条执行。不为,则执行下一条。这简直就是一个循环!——C语言的循环for(r2=0x2F4;r2-=4;r!=0){...},我们看看循环中做了什么。第一条指令把一个地址加载到了R1——0x2000"27D4是一个RAM地址,以这个为起点,在循环中,对长度为2F4的RAM空间进行了清零的操作。那为什么IAR要做这个事情呢?消除什么记录么?用Jlink查看这片内存区域,可以发现这片区域是我们定义的全局变量的所在地。也就是说,IAR在每次系统复位后,都会自动将我们定义的全局变量清零0。清零完毕后,接下来的指令"LDR R2, [R0], #0x4"将R0指向的地址——0x0800"7C84中的值——0加载到R2寄存器,然后R0中的值自加4,更新为0x0800"7C88。随后检查R2是否为0,这里R2为0,执行"BX LR"返回到__iar_data_init2函数,若是不为0,我们可以发现又会跳转至“4指令”处进行一个循环清零的操作。
2023-07-11 07:21:171

融资融券信用账户能从事债券回购交易吗

不能,交易所交易实施细则规定:投资者信用证券账户不得用于买入或转入除可充抵保证金证券范围以外的证券,也不得用于参与定向增发、证券投资基金申购及赎回、债券回购等。参考资料:上海证券交易所融资融券交易实施细则、深圳证券交易所融资融券交易实施细则
2023-07-11 07:21:214

撞破南墙的《魔装》(完结)

撞破南墙于2013年7月加盟创世中文网后开始连载的东方玄幻类小说。 强者路乃是不归途,自古以来,踏着千万,留名者却万中无一。唯有大毅力者方能在步步惊险凶恶的环境中不断攀爬,寻找着所谓强者的巅峰。这个世间只有不断追求更强的勇者,绝无永远不败的强者。而苏唐不仅是一个勇者,还是一个拥有魔装的幸运者。 内容简介:做弱者,多不得好活做强者,多不得好死所谓命运,就是在不得好活与不得好死之间做一个选择韩进,一个做好事却没好报的异类修真者,他的肉体在一场同归于尽的大爆炸中被毁,但在将要魂飞魄散的一瞬间,他坚信师父说过的话,死亡绝不是生命的最后!他力保一丝元神不灭,来到了一个完全陌生的魔法世界。在这里,韩进遭受到严峻的考验,大陆的局势混乱到了极点,几十个领主间连年征战不休,人命贱如刍狗,而韩进的修为已经被清零,只能从头再来……作品数据: 小说性质:VIP作品 总点击:10640479 月点击:525 周点击:525 小说类别:异界大陆 总推荐:743272 月推荐:10 周推荐:10 写作进程:已经完本 完成字数:2527518 授权状态:A级签约 本书起点中文网首发   内容简介:一个身手非凡、运气极渣的现代刺客在吃烤肉时,不幸被铁签刺破喉咙而死,灵魂被异界的邪恶大法师召唤,附生在被当成实验品的少年身上,得以解开厄运的诅咒。在成功狙杀了召唤自己的邪法师后,他巧妙地踩着对方的尸体,攀上了幸运的高枝……  作品信息: 小说性质:VIP作品 总点击:7884423 月点击:300 周点击:300 小说类别:异界大陆 总推荐:589675 月推荐:0 周推荐:0 写作进程:已经完本 完成字数:2068314 授权状态:A级签约 本书起点中文网首发 内容简介:军魂!军魄!军势!!!世界上有一种东西叫做「势」,龙畅游在大海,虎纵横于深山,蛇潜藏在草丛,马飞驰于平川,这就是它们的势!真正的勇士,对于自己不了解的事物,常怀恐惧戒慎之心,而什么都不怕的……那是傻子。书里的主角钱不离,对于他无法掌握的未来常感到担忧,所以他才能比常人看的更远,因为不想把自己生命的一切,演化成棋子,交给迷茫的未来,所以他奋起一搏,倾尽所能的将局势掌握在掌中,其它的,才归天意。作品信息: 小说性质:VIP作品 总点击:3179627 月点击:262 周点击:262 小说类别:架空历史 总推荐:285016 月推荐:0 周推荐:0 写作进程:已经完本 完成字数:1891160 授权状态:A级签约 本书起点中文网首发 内容简介:若人生如棋,我愿为卒,漫漫征途,谁曾见我后退半步作品数据: 小说性质:VIP作品 总点击:3683098 月点击:256 周点击:256 小说类别:异界大陆 总推荐:273187 月推荐:0 周推荐:0 写作进程:已经完本 完成字数:1936921 授权状态:A级签约 本书起点中文网首发 内容简介:一座位于地下几千米深的大型强子对撞机发生了故障,让可怕的反物质生命在惊鸿一瞥中发现了毗邻的物质世界,先是小规模的渗透,接着是大规模的入侵,人类被拖入一场持续数百年的战争当中。然而最终失败的却是人类,其他位面也未能幸免,物质世界在反物质生命的强大攻势下节节败退,科学家们不甘心接受这样的结局,动用剩余的战争资源,孤注一掷的发动了轮回计划,把强大的终极单兵武器审判之翼送回到几百年前。一个在社会底层苦苦打拼的年轻人,从那一刻开始,生命轨迹悄悄发生了变化。披挂着审判之翼的罗成,不止要守护当前的科技位面,还要往返其他位面,帮助濒临灭绝的巨龙一族,整合一团散沙的精灵,拯救一个个在全面战争中陨落的强者,联合各个位面的所有力量,和潮水般涌来的寄生魔物做殊死一搏,他唯一的使命便是改变这场战争的结局。作品数据: 小说性质:VIP作品 总点击:1182361 月点击:279 周点击:279 小说类别:时空穿梭 总推荐:159003 月推荐:46 周推荐:46 写作进程:无法完成 完成字数:1532793 授权状态:A级签约 本书起点中文网首发
2023-07-11 07:21:381

高清监控数据量庞大 视频监控存储如何应对

面对高清监控所带来的难题,要如何应对?海康的张龙君表示,高清主要是指码流在4-20Mbps的视频,应用高清的监控环境一般具有规模大、海量存储空间、监控区域重要等特点。 针对高清监控的特点和要求,海康威视(002415,股吧)推出了CVR和云存储系统。海康的CVR解决方案是基于流媒体数据直存技术,可以接入国内十多家主流编码器和平台。底层采用海康流媒体数据管理结构,结合VSPP(视频流预保护)技术,在保证复杂环境下系统稳定性的同时,完全消除覆盖读写带来的文件碎片问题,能大幅提高系统的应用性能和系统的写入能力及检索效率,保障了服务的持续性。海康可以开放全部的SDK,为用户进行个性化定制。在CVR方案的基础上,海康还推出了针对监控应用的云存储系统,该系统将应用于国内某特大型平安城市项目。海康云存储系统对外提供唯一的服务器接口,上层应用只需通过该接口接入即可,剩下的存储配置和管理均由云存储系统智能化自动完成。海康云存储系统具有应用简单、智能负载、无缝扩展、服务连续、最优性价比等特点。 对应高清监控数据量巨大、存储可靠性要求更高、系统结构更加灵活的特性,高清存储需要解决的问题也就越发明确:在高清监控系统中,存储设备和子系统必须具备有效、完整的记录功能;对所存储的数据要能从介质和系统角度考虑其可靠性和安全性;对系统结构灵活的特性,要能实现存储资源的统一管理和调度,以配置灵活的录像计划,并且能根据需求的变化,随时应对系统录像时间延长、监控前端扩展的要求。 宏杉的彭亚雄也谈到,“720P/1080P高清监控点得到广泛部署,而高清化带来的直接影响就是海量数据存储问题,首先高清监控所需存储容量是以前标清建设模式的2-4倍(将来甚至会更高),其次单路码流的增大,对存储设备处理能力也提出了更高的性能要求,同时上千TB的部署规模和大容量硬盘的广泛使用,如何保障硬盘安全,成为了存储设计厂商所需考虑的重要问题。”总的来看,高清监控对存储设备在容量、性能和可靠性方面都提出了更高的要求。 如何解决这些难题?需要关注的不仅是存储介质的选择,还有基于现有的在线存储介质,去设计不同的存储方案,从多维度去满足不同的高清监控系统对存储的需求: · 为实现大容量存储,可设计多硬盘插槽、兼容大容量硬盘的产品,并通过外部阵列柜的扩展来提供海量的存储空间; · 针对高可靠性存储需求,可在设备级采用RAID保护技术(如RAID5和RAID6技术的应用)。设备采用双控制器架构,利用物理硬件的冗余和心跳检测技术关联等,来保障存储服务的可靠性。在系统级,可以采用N+1设备在线冗余模式,以及录像管理服务器双机热备模式; · 在系统架构上,针对监控系统的特点,推荐采用分布式网络存储方案,降低系统传输压力。针对不同规模、不同结构的高清监控系统,还应该采用不同的存储子系统。例如针对旧系统改造、局部实现高清的系统,可采用混合式DVR来实现高清视频的接入和存储,既保护了原有的模拟标清视频接入,也为系统增加了“高清”亮点。
2023-07-11 07:21:452

杰华特值得申购吗

 【杰华特(688141)、股吧】在12月6日发布了其发行招股书,其中杰华特申购时间为2022年12月14日,杰华特的发行价格是38.26元/股,网上发行数量是952.5万股。杰华特微电子成立于2013年,是一家快速成长的高性能模拟和数模混合半导体供应商。自成立以来,公司始终致力于提供高集成度、高性能与高可靠性的电源管理等芯片产品,为客户提供一站式采购服务。请点击输入图片描述(最多18字)  杰华特值得申购吗从最近10日内上市新股来看,未出现破发个股,收益逐渐恢复。因此是杰华特值得申购是可以考虑的。  【申购信息】股票简称杰华特申购代码787141股票代码688141上市地点上海证券交易所网上顶格申购需配市值9.5万元网上发行数量952.5万股发行总股数量5808万股发行价格38.26元杰华特申购日期2022年12月14日  主营业务  公司是以虚拟 IDM 为主要经营模式的模拟集成电路设计企业,专业从事模拟集成电路的研发与销售,主要采用公司自有的国际先进的工艺技术进行芯片设计制造,是工业和信息化部认定的专精特新“小巨人”企业。公司具备包括芯片和系统设计技术、晶圆制造工艺在内的完整核心技术架构。目前公司产品以电源管理模拟芯片为主,在电源管理芯片领域拥有业界领先的全品类产品设计开发能力与产品覆盖广度,并逐步拓展信号链芯片产品,致力于为各行业客户提供高效率、高性能、高可靠性的一站式模拟集成电路产品解决方案。  公司坚持面向全应用领域开发模拟集成电路产品,随着产品数量的积累和技术能力的提升,公司下游应用领域逐渐从消费电子向工业应用、计算和存储以及汽车电子、通讯电子领域扩展。报告期内,公司产品结构逐步完善,工业及通讯领域销售占比从 20%左右提升至 50%左右,已成为公司最主要的产品应用领域。随着研发体系的进一步优化,公司将同步开发电源管理芯片和信号链芯片,进一步加强面向工业、通讯及汽车电子领域供应高性能芯片的能力。公司始终坚持“创新技术、自主研发”技术战略,截至 2022 年 6 月末,公司已取得 401 项专利,其中 146 项为发明专利,以及 49 项集成电路布图设计登记证书。  工艺平台是模拟芯片设计与制造的基础。目前,国内模拟 IC 设计公司多依赖于晶圆厂标准工艺,而全球前十大模拟芯片公司均拥有自有工艺平台,以此来保证自身产品的先进性和独特性,保障产品的持续竞争力。公司借鉴了国际领先的模拟芯片公司的发展经验以及研发模式,主要采用虚拟 IDM 模式,在主要合作晶圆厂均开发了国际先进的自有 BCD 工艺平台用于芯片设计制造。公司将自研工艺技术的迭代升级作为自身发展的核心竞争力之一。公司掌握的自研工艺技术不仅能够提供长期技术优势,通过工艺优化更好提升产品性能,切入通讯电子、汽车电子等新兴应用领域,亦能够形成成本优势,增强产品竞争力,是公司与国际龙头厂商进行竞争的重要支撑。  公司高度重视研发投入和人才队伍建设,报告期内累计研发投入达 5 亿元以上,占各期营业收入的比例均在 15%以上;截至报告期末,公司共有研发人员 341 名,占员工总数的 55%以上。凭借持续性的研发投入以及专业的人才团队,公司现已拥有 1,000 款以上可供销售、600 款以上在研的芯片产品型号,涵盖业内主流的应用场景,其中自主研发、设计的部分产品性能已处于国际先进水平,已进入海康威视、中兴、小米通讯、新华三、荣耀等各行业龙头企业的供应链体系,并相继研发出了诸如高集成度大电流系列、高压高精度高可靠性功率管理系列等多类具有首创性的芯片产品。随着公司技术实力的增强以及行业地位的提升,汽车电子与新能源领域等国家战略性新兴行业已成为公司的重点市场发展方向。未来,公司将继续以工艺开发和产品拓展为主线,以卓越的产品定义与质量管控为着力点,坚持“生产一代、研制一代、开发一代、储备一代”发展策略,以多样化、高性价比的芯片产品提升市场份额,争取早日实现“成为模拟集成电路行业领军者”的企业愿景。  看完了杰华特的公司简介以及主要产品发展和杰华特申购信息,下面为大家拓展下关于申购规则问题。  【申购规则】  1、申购时间:股票交易时间不同,股票交易时间是上午9:30至11:30,下午1:00至3:00.申购新股的话,只要在工作日的上午9:00至下午3:00,提交委托都可以。上班族可利用中午的时间申购。  2、撤单:股票交易在委托后只要未成交都可以撤单,申购新股的委托是不可以撤单的。  3、申购机会:每个账户对单个新股只能申购1次,不能重复申购。每支新股都有“申购上限”包括数量上限和资金上限。比如说,你有50万用于打新股,当天只有1支新股可申购,申购上限为30万元,那么只用一个账户的话,就只能申购1次,多出的20万元只能另行安排。  4、中签号:中签公布时间T+2,如7月17号申购,19号晚上就可以在证券账户上查到是否中签,如果中签,你的持仓中就会看到中签的股票及数量,如果没有中签,持仓中冻结的申购份额就消失了。
2023-07-11 07:21:571

药名,光条又叫什么名称

“光条”就是“山药”.
2023-07-11 07:21:584

科大讯飞股票跌停,是否说明未来形势会好转?

大讯飞股票跌停这是必然的趋势,因为受到春运还有疫情的双重碰撞, 但是我觉得他在后期应该也会上涨,会往好的方向上涨。形势会有好转。
2023-07-11 07:22:134

在黄灯时过了那条线红灯时还有个车屁股在线内算闯红灯吗

你是站住了还是过去了,如果过去了没事,如果站住了也没事顶多算你越线停车,要是红灯了看见过线了在往回一倒车,那应该就是闯红灯了。以后注意点祝你一路顺风哦。
2023-07-11 07:22:202

DNS的地址是固定的吗?

每个地区的DNS都是固定的,不个改的.所以呢你局域网里的 所有机子的DNS是一样的.不可以更改的 ,如果更改了就打不开网页了.但是QQ可以上
2023-07-11 07:22:294

已知苹果为X元每千克,梨为Y元每千克,苹果和梨共买4千克,应付多少元?付给营业员50元,应找回多少元?

假设买苹果a千克 那么梨4-a千克应付钱为 ax+(4-a)y 元应找钱 50-(ax+(4-a)y) 元. 如果算出来是正的,那么是找钱,如果是负的,那么是还需要再付钱.
2023-07-11 07:22:371

笔记本电脑和台式电脑哪中网速快?

相同带宽的配置高的比较快。相同配置以及相同带宽的笔记本的速度较快,因为网卡品质好一些。无线网卡一般是内置的,都是通过路由器连接上网,估计你想问的多半是无线上网卡,那个东西一般来说一年是1500左右,不同的城市以及不同的套餐,价格上会有一些差异。网速目前最快的是中国电信的3G网(CDMA2000)。
2023-07-11 07:22:465

每天转呼啦圈1500下可以达到减肥的效果吗?

有肯定是有的, 但不是很明显. 要配合日常饮食, 以及其他运动.
2023-07-11 07:23:036

冯柳是谁?

海康威视曾是A股首家上市的互联网 科技 公司,公司产品涵盖视频监控系统的所有主要设备,包括前端采集设备、后端存储及集中控制、显示、管理及储存设备。 在前单位上班的时候,公司所有与安防监控有关的,基本用的都是海康威视的产品。 上周末海康威视公布本年度第三季报,按照A股定期报告披露习惯,与业绩一起披露的包括大股东,主要是前十大股东和前十大无限售条件股东的的变化情况。 无独有偶,安防“第二”的大华股份与此类似,同样在十大股东中出现相同的名字,同样在大盘和个股整体向下的情况下,走出了一波独立行情。 而这只私募基金背后都指向一个传奇人物冯柳。 投资江湖里不缺传奇,江山代有才人出,这一次冯柳又走上了前台。 资料显示高毅邻山1号远望基金,成立于2015年11月,彼时正值熊市,高毅资产是由投资大佬邱国鹭一手创立,而邻山1号则是冯与邱牵手后发的首只私募基金,目前规模超百亿,而投资业绩也非同一般。 放在十多年前,冯名不见经传,五年前这个名字也仅是在圈子流行,而现在则是名满天下。 早期只是在小圈子流向,最开始以茅台03的网名在“闽发论坛”发帖,后转战淘股吧,后流行于雪球网,最终大成于全网。 2012年茅台03在淘股吧总结其过往人生,“过去9年我取得了93%的年复合回报”,算下来9年回报370倍。简单一句话其实折射了他的两个特质,除了收益够牛逼,就是起点低,草根出身也是被追捧的一大原因。 虽然已是名满天下,但网上对他的系统性介绍仍然很少,从一些碎片化的信息大概可以拼凑出冯柳的投资人生。 1999年大学毕业,开始在娃哈哈做销售,2003年辞职回家,做起了全职股民,后来陆续在闽发论坛和淘股吧发帖。 2015年已经在股票圈小有名气,2016年加盟邱国鹭的高毅资产,发行第一只产品(上文所说的高毅邻山1号远望)。 冯柳最初是用茅台03的网名发帖,碎片化的信息,有理由相信早期的冯柳对白酒股颇有心得,也带来不菲的收益。 一些细节不可考,碎片化的信息大体概括其收益路径。 2011年以前基本都是深耕白酒。具体取得多少收益不可知,但从2003年到2006年持有贵州茅台,茅台上涨超过3倍。后转投山西汾酒,直到之后从白酒转战医药。此前在山西汾酒上取得的巨大成功,冯柳成功完成了从小散到超级牛散的跨越。 2015年,邱国鹭与冯柳接洽,转战私募,完成牛散到私募基金经理的华丽转身。 至今为止高毅邻山1号的净值已经达到4.85,公开资料显示,即便在市场极“熊”的2018年,依旧取得正收益。 整理资料的时候想着复盘一下大佬的操作,转而又想过程比结果重要,但如果方法不能为我所用也是徒劳无益的,思维方式比方法更重要。在“茅台3”的一些论述中,往往更多的是思维模式形而上的表述。比如中证报采访冯柳时说的,“弱者思维”。 承认自己的能力边界,找到应对办法,做出适当改变。 承认自己能力的界限,是为了做出改变,投资如是,工作和生活又何尝不是。 当然,对普通人而言,也许存在某种极简方式,但在自己能力边界之内的行事才会有效,适合自己的才是最简的,比如有的人擅长识别股票,有的人则擅长识别大佬。你属于哪一类呢?
2023-07-11 07:23:161

57X26十2X13X4326X(57十43)26X1002600
2023-07-11 07:20:431

12万的房贷十年还清10.4.9利息一月还多少

12万的房贷十年还清4.9利息一月还1325.03元。按基准利率4.9%来计算,10年期月供1266.93元,累计还款152031元,利息32031元;按基准利率4.9的1.1倍(5.39%)来计算,10年期月供1295.78元,累计还款155494元,利息35494元;按基准利率4.9的1.2倍(5.88%)来计算,10年期月供1325.03元。累计159003元,利息39003元。
2023-07-11 07:20:391

永恒之塔 魔道的输出高低是只看魔增吗?平民 下本为主魔增要堆到多少?

不是、 (在魔命打到一定数值的前提下),这个版本增幅是有上限的,2900,在往上以后就以魔法抵消的形势消失,在就是魔法攻击力,技能释放顺序,很重要。
2023-07-11 07:20:322

159003基金怎样计算收益率

  1、159003基金是货币基金,净值不变,每日结算利息自动到账。货币基金的收益计算办法和一般开放式基金不同。基金公司通常每日公布当日每万份基金单位实现的收益金额,也就是万份基金单位收益。  2、货币基金是聚集社会闲散资金,由基金管理人运作,基金托管人保管资金的一种开放式基金,专门投向风险小的货币市场工具,区别于其他类型的开放式基金,具有高安全性、高流动性、稳定收益性,具有“准储蓄”的特征。
2023-07-11 07:20:302

香奈儿邂逅香水英文全名怎么写

Chance有好几种的,不是你说的是哪种。浓香水是:Chance by Chanel Eau de Parfum Sprayhttp://www.askyaya.com/uploadimage_detail/1319/1152173282824.jpg淡香水是:Chance by Chanel Eau de Toilette Sprayhttp://www.askyaya.com/uploadimage_detail/1319/1152176437904.jpg这两款都是橙黄色的,味道一样,前者留香时间长,瓶盖是金属的,后都留香时间不如前者,瓶盖是透明的。另外后来出的绿色清新版是:Chance Eau Fraiche by Chanelhttp://www.chinaedy.com/img_shopxp/upfilepic/2007112610103710161.jpg
2023-07-11 07:20:154

电脑进入系统后蓝屏

如果重做后仍蓝屏 就属于硬件设备问题了 建议考虑以下几点:硬件故障:1 新加硬件设备 最近如果新加了硬件 建议更新这个硬件设备的驱动或拔下此硬件(不兼容造成蓝屏 尤其是内存条)1 内存条 你把内存条拔出 来用橡皮把金手指擦擦或者用脱脂棉蘸点酒精把插巢擦一遍,不要蘸过多等干了后再插上就行 也可以换个内存插槽尝试2 硬盘 系统读取不了文件造成蓝屏 一般是硬盘数据线的问题 这样你需要打开机箱 硬盘数据线拔掉 重插!3 CPU散热 这种情况一般出现在开始一段时间后 解决方案:检查各部件的风扇良好情况或CPU带不动你的大硬盘吧,我认为是CPU过热引起的,散热不好.打开机箱,清一下CPU风扇的灰尘(用吸尘器最小的吸管,或者用胶片自己卷一个吸管),如果这样可以进入系统,你就赶快换一个新的风扇.
2023-07-11 07:20:001

那个朋友可以讲下中国重汽斯太尔桥和汉德斯太尔桥的区别 越详细越好

重汽AC16桥.汉德铸造桥.曼桥.东风3286.北奔.安凯主机厂株齿产品明细表 所处位置/名称 花键数 主机厂 株齿代码 主机厂代码 产品名称 备注 重汽 B846172800 AZ9981320158 AC16桥新品28:17后   盆角齿 31 重汽 B846172801 AZ9981320153 AC16桥新品28:17中   31 重汽 B846242904 AZ9981320154 AC16桥新品29:24中   31 重汽 B846242905 AZ9981320159 AC16桥新品29:24后   31 重汽 B846212900 AZ9981320157 AC16桥(21:29后桥)   31 重汽 B846212901 AZ9981320152 AC16桥(21:29中桥)   31 重汽 B846013000 AZ9981320130 AC16桥三联齿主动圆柱齿轮 与汉德主动齿通用(多铜套) 过桥箱   重汽 L846010700 AZ9981320107 AC16桥三联齿从动圆柱齿轮 与汉德从动齿通用   重汽 ZZ-L913022700 AZ9231320227 STR桥行星轮227(与AC16桥和HDMAN901行星轮通用) 中桥行星齿,与166后半轴齿轮配   重汽 B915016600 AZ9981320166 AC16桥新品166后半轴轮 与汉德002通用(多铜套)   重汽 ZZ-L913015200 AZ9231320152 STR桥行星轮152(与AC16桥通用) 轮间差速器行星齿,后桥用,与040轮间半轴齿配 后桥差速器   重汽 L915004000 AZ9981320040 AC16桥新品040半轴轮 后桥差速器半轴齿,与152行星齿配   重汽 L915005200 WG9981340052 AC16桥新品052轮边行星轮 轮边专用 轮边   汉德 HD-B846531012 81.35199.6524 铸造桥18:27后 与北奔、安凯通用 盆角齿 31 汉德 HD-B846501012 81.35199.6520 铸造桥18:27中 31 汉德 HD-B846101200 81.35199.6535 铸造桥21:28后 31 汉德 HD-B846101210 81.35199.6554 铸造桥21:28中 31 汉德 HD-B846353900 81.35199.6587 铸造桥24:29后 31 汉德 HD-B846363900 81.35199.6565 铸造桥24:29中 31 汉德 HD-B8461729D0   HD铸造桥中桥盆角齿(17:29等) 31 汉德 HD-B8461729D1   HD铸造桥后桥盆角齿(17:29等) 31 汉德 HD-L589004400 81.35113.0044 铸造桥太阳轮   轮边   汉德 HD-L589002900 81.35112.0029 铸造桥行星轮     汉德 HD-L589002100 81.35111.0021 铸造桥外齿川     汉德 HD-L589001900 81.35114.0019 铸造桥齿圈支架     汉德 L589003100 81.35610.0031 铸造桥过桥箱主动齿轮 与重汽通用(少铜套) 过渡箱   汉德 L589001100 81.35610.0011 铸造桥过桥箱被动齿轮 与重汽通用   汉德 L589000200 81.35617.0002 铸造桥轴间差速器从动齿轮 与重汽通用(少铜套)   汉德 L589000901 81.35609.0009 铸造桥行星齿轮 轴间差速器行星齿(与227行星轮通用)   汉德 L589003600 81.35106.0036 铸造桥半轴齿轮 后桥差速器与040半轴通用 后桥差速器   汉德 L589005900 81.35108.0059 铸造桥行星齿轮 后桥差速器(与152通用?)   汉德 B589031600 81.35199.6316 中联重科25吨中桥锥齿轮 专为中联重科开发 盆角齿   汉德 B589036300 81.35199.6363 中联重科25吨后桥锥齿轮   汉德 L589003900 81.35113.0039 中联重科25吨太阳轮 轮边   汉德 L589002600 81.35112.0026 中联重科25吨行星轮   汉德 HD-B589031710 81.35199.6317 HD-MAN桥-中桥盆角齿(21:28) 第三代军车桥 盆角齿 33 汉德 HD-B589039310 81.35199.6388 HD-MAN桥-后桥盆角齿(21:28) 33 汉德 HD-L589000900 81.35111.0009 HD-MAN桥-内齿圈 轮边   汉德 HD-L589001900 81.35114.0019 HD-MAN桥-齿圈支架   汉德 HD-L589002700 81.35112.0027 HD-MAN桥-行星轮   汉德 HD-L589004100 81.35113.0041 HD-MAN桥-太阳轮   东风车桥 B584182700   EQ3286后(18:27)   盆角齿 33 东风车桥 B585182700   EQ3286中(18:27)   33 东风车桥 B584242900   EQ3286后(24:29)   33 东风车桥 B585242900   EQ3286中(24:29)   33 东风车桥 B584212800   EQ3286后(21:28)   33 东风车桥 B585212800   EQ3286中(21:28)   33 东风车桥 B584172900   EQ3286后(17:29)   33 东风车桥 B585172900   EQ3286中(17:29)   33 东风车桥 B585507000   EQ3286齿圈及托盘总成   轮边   东风车桥 L584010220   EQ3286太阳轮     东风车桥 L584010320   EQ3286行星轮     北奔 B846212802 346350 4139 后桥(21:28) 与汉德、安凯通用 盆角齿 31 北奔 B846212803 346350 2939 中桥(21:28) 31 北奔 B846418270 346350 4039 后桥(18:27) 31 北奔 B846518270 346350 2739 中桥(18:27) 31 北奔 B846172905 545350 3939 后桥(17:29) 31 北奔 B846172906 545350 2639 中桥(17:29) 31 北奔 B846242903 545350 3639 后桥(24:29) 31 北奔 B846242902 545350 3539 中桥(24:29) 31 北奔 L8460041BC 355354 1312 北方奔驰内齿圈   轮边 31 北奔 L846371200 346354 3712 北奔内齿圈-加宽     北奔 L846031200 355354 0312 北奔前桥内齿圈     北奔 B846112400 346350 1124 北奔前贯齿轮总成(三联齿) 与重汽三联齿通用 过渡箱   北奔 L913001400 659353 0014 北奔行星齿轮 与重汽901小齿通用   北奔 B915052600 346353 0526 北奔后贯齿轮总成 与汉德002、AC16166长把子侧齿通用   北奔 B915081500 346353 0815 北奔半轴齿轮 与重汽L915004000通用 后桥差速器   北奔 L913191400 346353 1914 北奔行星齿轮 与重汽L913015200通用   安凯 L588505500 HFF2405055 CK 2BZ 行星轮 与汉德029通用 轮边   安凯 L588503501 HFF2405035 CK 2BZ 太阳轮 与汉德044通用   安凯 L588504100 HFF2405041 CK 2BZ 内齿圈 与北奔加宽内齿圈通用   安凯 L588504200 HFF2405042 CK 2BZ 齿圈支架     安凯 L588207300 HFF2502073 CK 1BZ 前输入轴 与汉德L589001600通用 中桥过渡箱   安凯 L588012100 HFF2510121 CK 1BZ 行星轮(精锻小齿) 与汉德L589000901通用   安凯 B588012000 HFF2510120 CK 1BZ 前差半轴齿轮总成 与重汽166通用   安凯 B588014000 HFF2510140 CK 1BZ 三联齿轮总成 与重汽三联齿通用   安凯 L588013900 HFF2510139 CK 1BZ 从动圆柱齿轮 与重汽、汉德通用   安凯 L588301501 HFF2403015 CK 1BZ 行星轮(精锻小齿) 与重汽L913015200通用 后桥差速器   安凯 L588301601 HFF2403016 CK 1BZ 半轴齿轮 与重汽L915004000通用   安凯 L588207101 HFF2502071 CK 2BZ 贯通轴(渐开线花键)   中桥   安凯 L588207102 HFF2502071 CK 2BZFTH 贯通轴(矩形花键)   8 安凯 B846518270   奔驰桥螺伞(18/27等高齿)中桥 与汉德、北奔通用 盆角齿 31 安凯 B846418270   奔驰桥螺伞(18/27等高齿)后桥 31 安凯 B846242902   奔驰桥螺伞(24/29等高齿)中桥 31 安凯 B846242903   奔驰桥螺伞(24/29等高齿)后桥 31
2023-07-11 07:19:324

在main之前,IAR都做了啥

最近要在Cortex-M3上写一个简单的操作系统,打算使用IAR,为了写好启动代码,花了一些时间了解了IAR在main()以前做了些什么事。首先系统复位时,Cortex-M3从代码区偏移0x0000"0000处获取栈顶地址,用来初始化MSP寄存器的值。接下来从代码区偏移0x0000"0004获取第一个指令的跳转地址。这些地址,是CM3要求放置中断向量表的地方。这里是一个程序的启动区的反汇编:__vector_table: 08004000 2600 08004002 2000 08004004 7E1D 08004006 0800 这个程序是由IAP程序来启动的,IAP程序获取0x0800"4000处的MSP值(0x20002600),并设置为MSP的值,即主堆栈最大范围是0x2000"0000~0x2000"25FF。接下来IAP程序获取0x0800"4004处的Reset_Handler的地址(0x0800"7E1D),并跳转到Reset_Handler()执行。IAP在这里完全是模仿了Cortex-M3的复位序列,也就是说,在没有IAP的系统上,CM3只能从0x0800"0000获取MSP,从0x0800"0004获取第一条指令所处地址。而IAP就存在在0x0800"0000这个地址上,IAP的启动,已经消耗掉了这个复位序列,所以IAP要启动UserApp程序的时候,也是完全模仿Cortex-M3的复位序列的。接下来我们看看复位后第一句指令——Reset_Handler()函数里有什么。若我们使用的是ST公司标准外设库,那么已经有了现成的Reset_Handler,不过他是弱定义——PUBWEAK,可以被我们重写的同名函数覆盖。一般来说,我们使用的都是ST提供的Reset_Handler,在V3.4版本的库中,可以在startup_stm32f10x_xx.s中找到这个函数: PUBWEAK Reset_Handler SECTION .text:CODE:REORDER(2)Reset_Handler LDR R0, =SystemInit BLX R0 LDR R0, =__iar_program_start BX R0看来ST没有做太多的事,他只调用了自家库提供的SystemInit函数进行系统时钟、Flash读取的初始化,并把大权交给了__iar_program_start这个IAR提供的“内部函数”了,我们就跟紧这个__iar_program_start跳转,看看IAR做了什么,上面一段代码的反汇编如下: Reset_Handler:__iar_section$$root: 08007E1C 4801 LDR R0, [PC, #0x4]; LDR R0, =SystemInit 08007E1E 4780 BLX R0;BLX R0 08007E20 4801 LDR R0, [PC, #0x4];LDR R0, =__iar_program_start 08007E22 4700 BX R0;BX R0 08007E24 6C69 08007E26 0800 08007E28 7D8D 08007E2A 0800 细心的观众会发现地址是0x0800"7E1C,比我们查到的0x0800"7E1D差了1,这是ARM家族的遗留问题,因为ARM处理器的指令至少是半字对齐的(16位THUMB指令集 or 32位ARM指令集),所以PC指针的LSB是常为0的,为了充分利用寄存器,ARM公司给PC的LSB了一个重要的使命,那就是在执行分支跳转时,PC的LSB=1,表示使用THUMB模式,LSB=0,表示使用ARM模式,但在最新的Cortex-M3内核上,只使用了THUMB-2指令集挑大梁,所以这一位要常保持1,所以我们查到的地址是0x0800"7E1D(C=1100,D=1101),放心,我们的CM3内核会忽略掉LSB(除非为0,那么会引起一个fault),从而正确跳转到0x0800"7E1C。从0x0800"7E20处的加载指令,我们可以算出__iar_program_start所处的位置,就是当前PC指针(0x0800"7E24),再加上4,即0x0800"7E28处的所指向的地址——0x0800"7D8D(0x0800"7D8C),我们跟紧着跳转,__iar_program_start果然在这里:__iar_program_start: 08007D8C F000F88C BL __low_level_init 08007D90 2800 CMP R0, #0x0 08007D92 D001 BEQ __iar_init$$done 08007D94 F7FFFFDE BL __iar_data_init2 08007D98 2000 MOVS R0, #0x0 08007D9A F7FDFC49 BL main我们看到IAR提供了__low_level_init这个函数进行了“底层”的初始化,进一步跟踪,我们可以查到__low_level_init这个函数做了些什么,不是不是我们想象中的不可告人。__low_level_init: 08007EA8 2001 MOVS R0, #0x1 08007EAA 4770 BX LR__low_level_init出乎想象的简单,只是往R0寄存器写入了1,就立即执行"BX LR"回到调用处了,接下来,__iar_program_start检查了R0是否为0,为0,则执行__iar_init$$done,若不是0,就执行__iar_data_init2。__iar_init$$done这个函数很简单,只有2句话,第一句是把R0清零,第二句就直接"BL main",跳转到main()函数了。不过既然__low_level_init已经往R0写入了1,那么我们还是得走下远路——看看__iar_data_init2做了些什么,虽然距离main只有一步之遥,不过这中间隐藏了编译器的思想,我们得耐心看下去。__iar_data_init2: 08007D54 B510 PUSH {R4,LR} 08007D56 4804 LDR R0, [PC, #0x10] 08007D58 4C04 LDR R4, [PC, #0x10] 08007D5A E002 B 0x8007D62 08007D5C F8501B04 LDR R1, [R0], #0x4 08007D60 4788 BLX R1 08007D62 42A0 CMP R0, R4 08007D64 D1FA BNE 0x8007D5C 08007D66 BD10 POP {R4,PC} 08007D68 7C78 08007D6A 0800 08007D6C 7C9C 08007D6E 0800 看来IAR迟迟不执行main()函数,就是为了执行__iar_data_init2,我们来分析分析IAR都干了些什么坏事~首先压R4,LR入栈,然后加载0x0800"7C78至R0,0x0800"7C9C至R4,马上跳转到0x0800"7D62执行R0,R4的比较,结果若是相等,则弹出R4,PC,然后立即进入main()。不过IAR请君入瓮是自不会那么快放我们出来的——结果不相等,跳转到0x0800"7D5C执行,在这里,把R0指向的地址——0x0800"7C78中的值——0x0800"7D71加载到R1,并且R0中的值自加4,更新为0x0800"7C7C,并跳转到R1指向的地址处执行,这里是另一个IAR函数:__iar_zero_init2:__iar_zero_init2: 08007D70 2300 MOVS R3, #0x0 08007D72 E005 B 0x8007D80 08007D74 F8501B04 LDR R1, [R0], #0x4 08007D78 F8413B04 STR R3, [R1], #0x4 08007D7C 1F12 SUBS R2, R2, #0x4 08007D7E D1FB BNE 0x8007D78 08007D80 F8502B04 LDR R2, [R0], #0x4 08007D84 2A00 CMP R2, #0x0 08007D86 D1F5 BNE 0x8007D74 08007D88 4770 BX LR 08007D8A 0000 MOVS R0, R0__iar_data_init2还没执行完毕,就跳转到了这个__iar_zero_inti2,且看我们慢慢分析这个帮凶——__iar_zero_inti2做了什么。__iar_zero_inti2将R3寄存器清零,立即跳转到0x0800"7D80执行"LDR R2, [R0], #0x4",这句指令与刚才在__iar_data_init2见到的"LDR R1, [R0], #0x4"很类似,都为“后索引”。这回,将R0指向的地址——0x0800"7C7C中的值——0x0000"02F4加载到R2寄存器,然后R0中的值自加4,更新为0x0800"7C80。接下来的指令检查了R2是否为0,显然这个函数没那么简单想放我我们,R2的值为2F4,我们又被带到了0x0800"7D74处,随后4条指令做了如下的事情:1、将R0指向的地址——0x0800"7C80中的值——0x2000"27D4加载到R1寄存器,然后R0中的值自加4,更新为0x0800"7C84。2、将R1指向的地址——0x2000"27D4中的值——改写为R3寄存器的值——0,然后R1中的值自加4,更新为0x2000"27D8。3、R2自减44、检查R2是否为0,不为0,跳转到第二条执行。不为,则执行下一条。这简直就是一个循环!——C语言的循环for(r2=0x2F4;r2-=4;r!=0){...},我们看看循环中做了什么。第一条指令把一个地址加载到了R1——0x2000"27D4是一个RAM地址,以这个为起点,在循环中,对长度为2F4的RAM空间进行了清零的操作。那为什么IAR要做这个事情呢?消除什么记录么?用Jlink查看这片内存区域,可以发现这片区域是我们定义的全局变量的所在地。也就是说,IAR在每次系统复位后,都会自动将我们定义的全局变量清零0。清零完毕后,接下来的指令"LDR R2, [R0], #0x4"将R0指向的地址——0x0800"7C84中的值——0加载到R2寄存器,然后R0中的值自加4,更新为0x0800"7C88。随后检查R2是否为0,这里R2为0,执行"BX LR"返回到__iar_data_init2函数,若是不为0,我们可以发现又会跳转至“4指令”处进行一个循环清零的操作。读到这里,我们应该可以猜到IAR的意图了:__iar_data_init2一开始加载了0x0800"7C78至R0,0x0800"7C9C至R4,[R0,R4]就是一段启动代码区,在这个区域内保存了要“处理”的所有地址与信息——执行的函数地址或者参数,实际上,这片区域也有一个名字,叫做:Region$$Table$$Base。在这个区域内,程序以R0为索引,R4为上限,当R0=R4,__iar_data_init2执行完毕,跳转至main()函数。好了,保持我们这个猜想,继续跟踪我们的PC指针——我们回到了__iar_data_init2函数中,第一件事就是比较R0,R4的值,可惜的是,仍然不相等,我们又被带到了0x0800"7D5C,至此,我们应该能看出这是一个__iar_data_init2的“主循环”,这也验证了我们对IAR意图的猜想~ __iar_data_init2中的“主循环”: 08007D5C F8501B04 LDR R1, [R0], #0x4 08007D60 4788 BLX R1 08007D62 42A0 CMP R0, R4我们可以等价写为:for(r0=0x0800"7C78,r4=0x0800"7C9C;r0!=r4;r0+=4){...}此时,我们的R0为0x0800"7C88,经过“指令1”,R0变为0x0800"7C8C,R1为0x0800"7C55。我们来看看,7C55处,IAR又要执行何种操作。__iar_copy_init2: 08007C54 B418 PUSH {R3,R4} 08007C56 E009 B 0x8007C6C 08007C58 F8501B04 LDR R1, [R0], #0x4 08007C5C F8502B04 LDR R2, [R0], #0x4 08007C60 F8514B04 LDR R4, [R1], #0x4 08007C64 F8424B04 STR R4, [R2], #0x4 08007C68 1F1B SUBS R3, R3, #0x4 08007C6A D1F9 BNE 0x8007C60 08007C6C F8503B04 LDR R3, [R0], #0x4 08007C70 2B00 CMP R3, #0x0 08007C72 D1F1 BNE 0x8007C58 08007C74 BC12 POP {R1,R4} 08007C76 4770 BX LR这是一个名为__iar_copy_init2的函数,他执行了什么"copy"操作呢?首先压R3,R4入栈,然后跳转到0x0800"7C6C,从R0——Region$$Table$$Base中取出参数0x238放入R3,接下来的指令大家应该都熟悉了,0x238不为0,所以我们被带至7C58处,再次从Region$$Table$$Base中取出参数0x0800"7F14放入R1,从Region$$Table$$Base取出参数0x2000"2AC8放入R2处。细心的观众应该能察觉这和__iar_zero_init2中取参数的几乎一样:先取出大小,随后取出了地址——只不过这里多出了1个地址,没错这就是"copy",随后的指令 08007C60 F8514B04 LDR R4, [R1], #0x4 08007C64 F8424B04 STR R4, [R2], #0x4 08007C68 1F1B SUBS R3, R3, #0x4 08007C6A D1F9 BNE 0x8007C60则是另一个“4指令”,指令1将R1指向地址的数据读到R4,指令2将R2指向地址的数据改写为R4的数据,指令3、4是完成一个循环。说到这里大家都应该明白了——这就是一个"copy"的操作,从Flash地址0x0800"7F14起,将长度0x238的数据拷贝到RAM地址0x2000"2AC8中。通过Jlink,我们可以看到这片区域是我们定义的并且已初始化的全局变量。也就是说,每次复位后,IAR在此处进行全局变量的初始化。在这“4指令”执行完毕后,再次从Region$$Table$$Base中取出参数,为0,比较之后条件符合,函数返回__iar_data_init2。此时的R0已经为0x0800"7C9C与R4相等,__iar_data_init2终于完成它的使命。08007D98 2000 MOVS R0, #0x0 08007D9A F7FDFC49 BL main将R0清零以后,IAR放弃主动权,把PC指针交给了用户程序的入口——main()。但请注意,这里使用的是BL指令进行main跳转,也就是说,main函数只是IAR手中的一个子程序,若是main函数执行到了结尾,接下来则会执行exit等IAR提供的“退出”函数。这些函数,等待下回分解~总之,IAR在启动main()函数以前,执行了Reset_Handler,调用SystemInit()(ST库提供)进行时钟,Flash读取初始化,并转入__iar_program_start中执行__low_level_init与__iar_data_init2,并在__iar_data_init2中,先后调用__iar_zero_init2与__iar_copy_init2对全局变量、全局已初始化变量进行相应的初始化操作。最后,调用main()函数执行。这就是IAR在启动main()函数之前做的事情,它并没有那么神秘,只要花些时间,就可以跟跟踪分析出这个过程。
2023-07-11 07:19:181

在main之前,IAR都做了啥

近要Cortex-M3写简单操作系统打算使用IAR写启代码花些间解IARmain()前做些事 首先系统复位Cortex-M3代码区偏移0x0000"0000处获取栈顶址用初始化MSP寄存器值 接代码区偏移0x0000"0004获取第指令跳转址些址CM3要求放置断向量表 程序启区反汇编: __vector_table: 08004000 2600 08004002 2000 08004004 7E1D 08004006 0800 程序由IAP程序启IAP程序获取0x0800"4000处MSP值(0x20002600)并设置MSP值即主堆栈 范围0x2000"0000~0x2000"25FF接IAP程序获取0x0800"4004处Reset_Handler址 (0x0800"7E1D)并跳转Reset_Handler()执行 IAP完全模仿Cortex-M3复位序列说没IAP系统CM3能0x0800"0000获取MSP 0x0800"0004获取第条指令所处址IAP存0x0800"0000址IAP启已经消耗掉复位序列所 IAP要启UserApp程序候完全模仿Cortex-M3复位序列 接我看看复位第句指令——Reset_Handler()函数 若我使用ST公司标准外设库已经现Reset_Handler弱定义——PUBWEAK我重写同名函数覆盖般说我使用都ST提供Reset_HandlerV3.4版本库startup_stm32f10x_xx.s找函数: PUBWEAK Reset_Handler SECTION .text:CODE:REORDER(2) Reset_Handler LDR R0, =SystemInit BLX R0 LDR R0, =__iar_program_start BX R0 看ST没做太事调用自家库提供SystemInit函数进行系统钟、Flash读取初始化并权交给 __iar_program_startIAR提供内部函数我跟紧__iar_program_start跳转看看IAR做 面段代码反汇编: Reset_Handler: __iar_section$$root: 08007E1C 4801 LDR R0, [PC, #0x4]; LDR R0, =SystemInit 08007E1E 4780 BLX R0;BLX R0 08007E20 4801 LDR R0, [PC, #0x4];LDR R0, =__iar_program_start 08007E22 4700 BX R0;BX R0 08007E24 6C69 08007E26 0800 08007E28 7D8D 08007E2A 0800 细观众发现址0x0800"7E1C比我查0x0800"7E1D差1ARM家族遗留问题ARM处理器指令至 少半字齐(16位THUMB指令集 or 32位ARM指令集)所PC指针LSB0充利用寄存器ARM公司给PCLSB重要使命执行支跳转PC LSB=1表示使用THUMB模式LSB=0表示使用ARM模式新Cortex-M3内核使用THUMB-2指令集挑梁所 位要保持1所我查址0x0800"7E1D(C=1100,D=1101)放我CM3内核忽略掉LSB(除非0 引起fault)确跳转0x0800"7E1C 0x0800"7E20处加载指令我算__iar_program_start所处位置前PC指针 (0x0800"7E24)再加4即0x0800"7E28处所指向址——0x0800"7D8D(0x0800"7D8C)我跟紧着跳 转__iar_program_start: __iar_program_start: 08007D8C F000F88C BL __low_level_init 08007D90 2800 CMP R0, #0x0 08007D92 D001 BEQ __iar_init$$done 08007D94 F7FFFFDE BL __iar_data_init2 08007D98 2000 MOVS R0, #0x0 08007D9A F7FDFC49 BL main 我看IAR提供__low_level_init函数进行底层初始化进步跟踪我查__low_level_init函数做些我想象告 __low_level_init: 08007EA8 2001 MOVS R0, #0x1 08007EAA 4770 BX LR __low_level_init乎想象简单往R0寄存器写入1立即执行"BX LR"调用处接__iar_program_start检查R0否00则执行__iar_init$$done若0 执行__iar_data_init2__iar_init$$done函数简单2句第句R0清零第二句直接"BL main"跳转main()函数既__low_level_init已经往R0写入1我走远路——看看 __iar_data_init2做些虽距离main步遥间隐藏编译器思想我耐看 __iar_data_init2: 08007D54 B510 PUSH {R4,LR} 08007D56 4804 LDR R0, [PC, #0x10] 08007D58 4C04 LDR R4, [PC, #0x10] 08007D5A E002 B 0x8007D62 08007D5C F8501B04 LDR R1, [R0], #0x4 08007D60 4788 BLX R1 08007D62 42A0 CMP R0, R4 08007D64 D1FA BNE 0x8007D5C 08007D66 BD10 POP {R4,PC} 08007D68 7C78 08007D6A 0800 08007D6C 7C9C 08007D6E 0800 看IAR迟迟执行main()函数执行__iar_data_init2我析析IAR都干些坏事~ 首先压R4LR入栈加载0x0800"7C78至R00x0800"7C9C至 R4马跳转0x0800"7D62执行R0R4比较结若相等则弹R4PC立即进入main()IAR请君入瓮自 快放我——结相等跳转0x0800"7D5C执行R0指向址——0x0800"7C78值—— 0x0800"7D71加载R1并且R0值自加4更新0x0800"7C7C并跳转R1指向址处执行另IAR函 数:__iar_zero_init2: __iar_zero_init2: 08007D70 2300 MOVS R3, #0x0 08007D72 E005 B 0x8007D80 08007D74 F8501B04 LDR R1, [R0], #0x4 08007D78 F8413B04 STR R3, [R1], #0x4 08007D7C 1F12 SUBS R2, R2, #0x4 08007D7E D1FB BNE 0x8007D78 08007D80 F8502B04 LDR R2, [R0], #0x4 08007D84 2A00 CMP R2, #0x0 08007D86 D1F5 BNE 0x8007D74 08007D88 4770 BX LR 08007D8A 0000 MOVS R0, R0 __iar_data_init2没执行完毕跳转__iar_zero_inti2且看我慢慢析帮凶——__iar_zero_inti2做 __iar_zero_inti2R3寄存器清零立即跳转0x0800"7D80执行"LDR R2, [R0], #0x4"句指令与刚才__iar_data_init2见"LDR R1, [R0], #0x4"类似都索引R0指向址——0x0800"7C7C值——0x0000"02F4加载R2寄存器R0 值自加4更新0x0800"7C80接指令检查R2否0显函数没简单想放我我R2值2F4我带 0x0800"7D74处随4条指令做事情: 1、R0指向址——0x0800"7C80值——0x2000"27D4加载R1寄存器R0值自加4更新0x0800"7C84 2、R1指向址——0x2000"27D4值——改写R3寄存器值——0R1值自加4更新0x2000"27D8 3、R2自减4 4、检查R2否00跳转第二条执行则执行条 简直循环——C语言循环for(r2=0x2F4;r2-=4;r!=0){...}我看看循环做 第条指令址加载R1——0x2000"27D4 RAM址起点循环度2F4RAM空间进行清零操作IAR要做事情呢消除记录用Jlink 查看片内存区域发现片区域我定义全局变量所说IAR每系统复位都自我定义全局变量清零0 清零完毕接指令"LDR R2, [R0], #0x4"R0指向址——0x0800"7C84值——0加载R2寄存器R0值自加4更新0x0800"7C88随检查 R2否0R20执行"BX LR"返__iar_data_init2函数若0我发现跳转至4指令处进行循环清零操作 读我应该猜IAR意图:__iar_data_init2 始加载0x0800"7C78至R00x0800"7C9C至R4[R0,R4]段启代码区区域内保存要处理所址与信 息——执行函数址或者参数实际片区域名字叫做:Region$$Table$$Base区域内程序R0索引R4 限R0=R4__iar_data_init2执行完毕跳转至main()函数 保持我猜想继续跟踪我PC指针——我 __iar_data_init2函数第件事比较R0R4值惜仍相等我带0x0800"7D5C至我应 该能看__iar_data_init2主循环验证我IAR意图猜想~ __iar_data_init2主循环: 08007D5C F8501B04 LDR R1, [R0], #0x4 08007D60 4788 BLX R1 08007D62 42A0 CMP R0, R4 我等价写:for(r0=0x0800"7C78,r4=0x0800"7C9C;r0!=r4;r0+=4){...} 我R00x0800"7C88经指令1R0变0x0800"7C8CR10x0800"7C55我看看7C55处IAR要执行何种操作 __iar_copy_init2: 08007C54 B418 PUSH {R3,R4} 08007C56 E009 B 0x8007C6C 08007C58 F8501B04 LDR R1, [R0], #0x4 08007C5C F8502B04 LDR R2, [R0], #0x4 08007C60 F8514B04 LDR R4, [R1], #0x4 08007C64 F8424B04 STR R4, [R2], #0x4 08007C68 1F1B SUBS R3, R3, #0x4 08007C6A D1F9 BNE 0x8007C60 08007C6C F8503B04 LDR R3, [R0], #0x4 08007C70 2B00 CMP R3, #0x0 08007C72 D1F1 BNE 0x8007C58 08007C74 BC12 POP {R1,R4} 08007C76 4770 BX LR 名__iar_copy_init2函数执行"copy"操作呢 首先压R3,R4入栈跳转0x0800"7C6CR0——Region$$Table$$Base取参数0x238放入R3接 指令家应该都熟悉0x2380所我带至7C58处再Region$$Table$$Base取参数0x0800"7F14放入R1Region$$Table$$Base取参数0x2000"2AC8放入R2处细观众应该能察觉__iar_zero_init2取参数几乎:先取随取址——1址没错"copy"随指令 08007C60 F8514B04 LDR R4, [R1], #0x4 08007C64 F8424B04 STR R4, [R2], #0x4 08007C68 1F1B SUBS R3, R3, #0x4 08007C6A D1F9 BNE 0x8007C60 则另4指令指令1R1指向址数据读R4指令2R2指向址数据改写R4数据指令3、4完循环 说家都应该明白——"copy"操作Flash址0x0800"7F14起度0x238数据拷贝RAM址0x2000"2AC8 通Jlink我看片区域我定义并且已初始化全局变量说每复位IAR处进行全局变量初始化 4指令执行完毕再Region$$Table$$Base取参数0比较条件符合函数返__iar_data_init2 R0已经0x0800"7C9C与R4相等__iar_data_init2终于完使命 08007D98 2000 MOVS R0, #0x0 08007D9A F7FDFC49 BL main R0清零IAR放弃主权PC指针交给用户程序入口——main() 请注意使用BL指令进行main跳转说main函数IAR手程序若main函数执行结尾接则执行exit等IAR提供退函数些函数等待解~ 总IAR启main()函数前执行Reset_Handler调用 SystemInit()(ST库提供)进行钟Flash读取初始化并转入__iar_program_start执行 __low_level_init与__iar_data_init2并__iar_data_init2先调用 __iar_zero_init2与__iar_copy_init2全局变量、全局已初始化变量进行相应初始化操作调用main()函数执 行 IAR启main()函数前做事情并没神秘要花些间跟跟踪析程 中国至美中国blogs中国/mssql/archive/2011/01/29/tt146.htm
2023-07-11 07:19:091

在main之前,IAR都做了啥

最近要在Cortex-M3上写一个简单的操作系统,打算使用IAR,为了写好启动代码,花了一些时间了解了IAR在main()以前做了些什么事。首先系统复位时,Cortex-M3从代码区偏移0x0000"0000处获取栈顶地址,用来初始化MSP寄存器的值。接下来从代码区偏移0x0000"0004获取第一个指令的跳转地址。这些地址,是CM3要求放置中断向量表的地方。这里是一个程序的启动区的反汇编:__vector_table: 08004000 2600 08004002 2000 08004004 7E1D 08004006 0800 这个程序是由IAP程序来启动的,IAP程序获取0x0800"4000处的MSP值(0x20002600),并设置为MSP的值,即主堆栈最大范围是0x2000"0000~0x2000"25FF。接下来IAP程序获取0x0800"4004处的Reset_Handler的地址(0x0800"7E1D),并跳转到Reset_Handler()执行。IAP在这里完全是模仿了Cortex-M3的复位序列,也就是说,在没有IAP的系统上,CM3只能从0x0800"0000获取MSP,从0x0800"0004获取第一条指令所处地址。而IAP就存在在0x0800"0000这个地址上,IAP的启动,已经消耗掉了这个复位序列,所以IAP要启动UserApp程序的时候,也是完全模仿Cortex-M3的复位序列的。接下来我们看看复位后第一句指令——Reset_Handler()函数里有什么。若我们使用的是ST公司标准外设库,那么已经有了现成的Reset_Handler,不过他是弱定义——PUBWEAK,可以被我们重写的同名函数覆盖。一般来说,我们使用的都是ST提供的Reset_Handler,在V3.4版本的库中,可以在startup_stm32f10x_xx.s中找到这个函数: PUBWEAK Reset_Handler SECTION .text:CODE:REORDER(2)Reset_Handler LDR R0, =SystemInit BLX R0 LDR R0, =__iar_program_start BX R0看来ST没有做太多的事,他只调用了自家库提供的SystemInit函数进行系统时钟、Flash读取的初始化,并把大权交给了__iar_program_start这个IAR提供的“内部函数”了,我们就跟紧这个__iar_program_start跳转,看看IAR做了什么,上面一段代码的反汇编如下: Reset_Handler:__iar_section$$root: 08007E1C 4801 LDR R0, [PC, #0x4]; LDR R0, =SystemInit 08007E1E 4780 BLX R0;BLX R0 08007E20 4801 LDR R0, [PC, #0x4];LDR R0, =__iar_program_start 08007E22 4700 BX R0;BX R0 08007E24 6C69 08007E26 0800 08007E28 7D8D 08007E2A 0800 细心的观众会发现地址是0x0800"7E1C,比我们查到的0x0800"7E1D差了1,这是ARM家族的遗留问题,因为ARM处理器的指令至少是半字对齐的(16位THUMB指令集 or 32位ARM指令集),所以PC指针的LSB是常为0的,为了充分利用寄存器,ARM公司给PC的LSB了一个重要的使命,那就是在执行分支跳转时,PC的LSB=1,表示使用THUMB模式,LSB=0,表示使用ARM模式,但在最新的Cortex-M3内核上,只使用了THUMB-2指令集挑大梁,所以这一位要常保持1,所以我们查到的地址是0x0800"7E1D(C=1100,D=1101),放心,我们的CM3内核会忽略掉LSB(除非为0,那么会引起一个fault),从而正确跳转到0x0800"7E1C。从0x0800"7E20处的加载指令,我们可以算出__iar_program_start所处的位置,就是当前PC指针(0x0800"7E24),再加上4,即0x0800"7E28处的所指向的地址——0x0800"7D8D(0x0800"7D8C),我们跟紧着跳转,__iar_program_start果然在这里:__iar_program_start: 08007D8C F000F88C BL __low_level_init 08007D90 2800 CMP R0, #0x0 08007D92 D001 BEQ __iar_init$$done 08007D94 F7FFFFDE BL __iar_data_init2 08007D98 2000 MOVS R0, #0x0 08007D9A F7FDFC49 BL main我们看到IAR提供了__low_level_init这个函数进行了“底层”的初始化,进一步跟踪,我们可以查到__low_level_init这个函数做了些什么,不是不是我们想象中的不可告人。__low_level_init: 08007EA8 2001 MOVS R0, #0x1 08007EAA 4770 BX LR__low_level_init出乎想象的简单,只是往R0寄存器写入了1,就立即执行"BX LR"回到调用处了,接下来,__iar_program_start检查了R0是否为0,为0,则执行__iar_init$$done,若不是0,就执行__iar_data_init2。__iar_init$$done这个函数很简单,只有2句话,第一句是把R0清零,第二句就直接"BL main",跳转到main()函数了。不过既然__low_level_init已经往R0写入了1,那么我们还是得走下远路——看看__iar_data_init2做了些什么,虽然距离main只有一步之遥,不过这中间隐藏了编译器的思想,我们得耐心看下去。__iar_data_init2: 08007D54 B510 PUSH {R4,LR} 08007D56 4804 LDR R0, [PC, #0x10] 08007D58 4C04 LDR R4, [PC, #0x10] 08007D5A E002 B 0x8007D62 08007D5C F8501B04 LDR R1, [R0], #0x4 08007D60 4788 BLX R1 08007D62 42A0 CMP R0, R4 08007D64 D1FA BNE 0x8007D5C 08007D66 BD10 POP {R4,PC} 08007D68 7C78 08007D6A 0800 08007D6C 7C9C 08007D6E 0800 看来IAR迟迟不执行main()函数,就是为了执行__iar_data_init2,我们来分析分析IAR都干了些什么坏事~首先压R4,LR入栈,然后加载0x0800"7C78至R0,0x0800"7C9C至R4,马上跳转到0x0800"7D62执行R0,R4的比较,结果若是相等,则弹出R4,PC,然后立即进入main()。不过IAR请君入瓮是自不会那么快放我们出来的——结果不相等,跳转到0x0800"7D5C执行,在这里,把R0指向的地址——0x0800"7C78中的值——0x0800"7D71加载到R1,并且R0中的值自加4,更新为0x0800"7C7C,并跳转到R1指向的地址处执行,这里是另一个IAR函数:__iar_zero_init2:__iar_zero_init2: 08007D70 2300 MOVS R3, #0x0 08007D72 E005 B 0x8007D80 08007D74 F8501B04 LDR R1, [R0], #0x4 08007D78 F8413B04 STR R3, [R1], #0x4 08007D7C 1F12 SUBS R2, R2, #0x4 08007D7E D1FB BNE 0x8007D78 08007D80 F8502B04 LDR R2, [R0], #0x4 08007D84 2A00 CMP R2, #0x0 08007D86 D1F5 BNE 0x8007D74 08007D88 4770 BX LR 08007D8A 0000 MOVS R0, R0__iar_data_init2还没执行完毕,就跳转到了这个__iar_zero_inti2,且看我们慢慢分析这个帮凶——__iar_zero_inti2做了什么。__iar_zero_inti2将R3寄存器清零,立即跳转到0x0800"7D80执行"LDR R2, [R0], #0x4",这句指令与刚才在__iar_data_init2见到的"LDR R1, [R0], #0x4"很类似,都为“后索引”。这回,将R0指向的地址——0x0800"7C7C中的值——0x0000"02F4加载到R2寄存器,然后R0中的值自加4,更新为0x0800"7C80。接下来的指令检查了R2是否为0,显然这个函数没那么简单想放我我们,R2的值为2F4,我们又被带到了0x0800"7D74处,随后4条指令做了如下的事情:1、将R0指向的地址——0x0800"7C80中的值——0x2000"27D4加载到R1寄存器,然后R0中的值自加4,更新为0x0800"7C84。2、将R1指向的地址——0x2000"27D4中的值——改写为R3寄存器的值——0,然后R1中的值自加4,更新为0x2000"27D8。3、R2自减44、检查R2是否为0,不为0,跳转到第二条执行。不为,则执行下一条。这简直就是一个循环!——C语言的循环for(r2=0x2F4;r2-=4;r!=0){...},我们看看循环中做了什么。第一条指令把一个地址加载到了R1——0x2000"27D4 是一个RAM地址,以这个为起点,在循环中,对长度为2F4的RAM空间进行了清零的操作。那为什么IAR要做这个事情呢?消除什么记录么?用Jlink查看这片内存区域,可以发现这片区域是我们定义的全局变量的所在地。也就是说,IAR在每次系统复位后,都会自动将我们定义的全局变量清零0。清零完毕后,接下来的指令"LDR R2, [R0], #0x4"将R0指向的地址——0x0800"7C84中的值——0加载到R2寄存器,然后R0中的值自加4,更新为0x0800"7C88。随后检查R2是否为0,这里R2为0,执行"BX LR"返回到__iar_data_init2函数,若是不为0,我们可以发现又会跳转至“4指令”处进行一个循环清零的操作。读到这里,我们应该可以猜到IAR的意图了:__iar_data_init2一开始加载了0x0800"7C78至R0,0x0800"7C9C至R4,[R0,R4]就是一段启动代码区,在这个区域内保存了要“处理”的所有地址与信息——执行的函数地址或者参数,实际上,这片区域也有一个名字,叫做:Region$$Table$$Base。在这个区域内,程序以R0为索引,R4为上限,当R0=R4,__iar_data_init2执行完毕,跳转至main()函数。好了,保持我们这个猜想,继续跟踪我们的PC指针——我们回到了__iar_data_init2函数中,第一件事就是比较R0,R4的值,可惜的是,仍然不相等,我们又被带到了0x0800"7D5C,至此,我们应该能看出这是一个__iar_data_init2的“主循环”,这也验证了我们对IAR意图的猜想~ __iar_data_init2中的“主循环”: 08007D5C F8501B04 LDR R1, [R0], #0x4 08007D60 4788 BLX R1 08007D62 42A0 CMP R0, R4我们可以等价写为:for(r0=0x0800"7C78,r4=0x0800"7C9C;r0!=r4;r0+=4){...}此时,我们的R0为0x0800"7C88,经过“指令1”,R0变为0x0800"7C8C,R1为0x0800"7C55。我们来看看,7C55处,IAR又要执行何种操作。__iar_copy_init2: 08007C54 B418 PUSH {R3,R4} 08007C56 E009 B 0x8007C6C 08007C58 F8501B04 LDR R1, [R0], #0x4 08007C5C F8502B04 LDR R2, [R0], #0x4 08007C60 F8514B04 LDR R4, [R1], #0x4 08007C64 F8424B04 STR R4, [R2], #0x4 08007C68 1F1B SUBS R3, R3, #0x4 08007C6A D1F9 BNE 0x8007C60 08007C6C F8503B04 LDR R3, [R0], #0x4 08007C70 2B00 CMP R3, #0x0 08007C72 D1F1 BNE 0x8007C58 08007C74 BC12 POP {R1,R4} 08007C76 4770 BX LR这是一个名为__iar_copy_init2的函数,他执行了什么"copy"操作呢?首先压R3,R4入栈,然后跳转到0x0800"7C6C,从R0——Region$$Table$$Base中取出参数0x238放入R3,接下来的指令大家应该都熟悉了,0x238不为0,所以我们被带至7C58处,再次从Region$$Table$$Base中取出参数0x0800"7F14放入R1,从Region$$Table$$Base取出参数0x2000"2AC8放入R2处。细心的观众应该能察觉这和__iar_zero_init2中取参数的几乎一样:先取出大小,随后取出了地址——只不过这里多出了1个地址,没错这就是"copy",随后的指令 08007C60 F8514B04 LDR R4, [R1], #0x4 08007C64 F8424B04 STR R4, [R2], #0x4 08007C68 1F1B SUBS R3, R3, #0x4 08007C6A D1F9 BNE 0x8007C60则是另一个“4指令”,指令1将R1指向地址的数据读到R4,指令2将R2指向地址的数据改写为R4的数据,指令3、4是完成一个循环。说到这里大家都应该明白了——这就是一个"copy"的操作,从Flash地址0x0800"7F14起,将长度0x238的数据拷贝到RAM地址0x2000"2AC8中。通过Jlink,我们可以看到这片区域是我们定义的并且已初始化的全局变量。也就是说,每次复位后,IAR在此处进行全局变量的初始化。在这“4指令”执行完毕后,再次从Region$$Table$$Base中取出参数,为0,比较之后条件符合,函数返回__iar_data_init2。此时的R0已经为0x0800"7C9C与R4相等,__iar_data_init2终于完成它的使命。08007D98 2000 MOVS R0, #0x0 08007D9A F7FDFC49 BL main将R0清零以后,IAR放弃主动权,把PC指针交给了用户程序的入口——main()。但请注意,这里使用的是BL指令进行main跳转,也就是说,main函数只是IAR手中的一个子程序,若是main函数执行到了结尾,接下来则会执行exit等IAR提供的“退出”函数。这些函数,等待下回分解~总之,IAR在启动main()函数以前,执行了Reset_Handler,调用SystemInit()(ST库提供)进行时钟,Flash读取初始化,并转入__iar_program_start中执行__low_level_init与__iar_data_init2,并在__iar_data_init2中,先后调用__iar_zero_init2与__iar_copy_init2对全局变量、全局已初始化变量进行相应的初始化操作。最后,调用main()函数执行。这就是IAR在启动main()函数之前做的事情,它并没有那么神秘,只要花些时间,就可以跟跟踪分析出这个过程。http://www.cnblogs.com/mssql/archive/2011/01/29/tt146.html
2023-07-11 07:18:581

000009利好还是利空

经查证核实,000009中国宝安,受到证监会行政监管,当然不是利好而是利空。附相关公告,仅供参考:★最新公告:2018-02-12中国宝安(000009)关于收到深圳证监局行政监管措施决 定书的公告(详见公司大事) ;★最新报道:2018-02-11中国宝安(000009):深圳证监局决定对公司采取责令改正的行政监管措施(详见业内点评)
2023-07-11 07:18:412

电脑进入系统后蓝屏,出现如下错误提示,该如何解决?

电脑开机显示WINDOWDS错误恢复画面 ,然后蓝屏,这很可能是系统文件丢失或者损坏,导致无法引导系统,并伴有蓝屏,一般遇上这样的现象可以按下面的方法处理:(1)首先尝试重启电脑,马上按下F8键,进入错误恢复画面,选择最后一次配置,看能不能进系统,如果能进,一般系统会自动修复一些系统的小问题。如果不能,再选择安全模式,能进在安全模式下全盘杀毒,一般就会好的,如果安全模式也不能进,在这个画面反复的重启,并伴有蓝屏,哪代表系统的启动文件被破坏或者系统文件被破坏或者丢失,无法引导系统,一般遇上这样的情况,只能一键还原或者用光盘或者U盘重装系统。(2)用GHOST光盘安装系统的方法如下:先要到软件店或者电脑店买一张带PE的GHOST WIN7 SP1或者GHOST WINXP版光盘,然后按下面的步骤来做:(这里以WIN7 为例,XP的过程也是一样)第一步:开机按下F12键,进入快速启动菜单,选择DVDROM启动,也可以开机按下DEL,进入BIOS中,设好光驱为启动,(找到BOOT----boot settings---boot device priority--enter(确定)--1ST BOOT DEVICE--DVDROM--enter(确定)))F10保存。第一个就是光驱启动第二步:把光盘放入光驱,启动电脑,进入到一个启动菜单界面,选择WINPE(WIN2003或者 WIN8PE)进入,然后打开“我的电脑”或者“计算机”,找到C盘,然后格式化C盘,(文件类型选择NTFS ,快速格式化)确定即可。第三步:返回主菜单,只要点1或A就搞定了,它会自动安装系统和驱动。第四步:重启后,很多应用软件会自动安装,(当然不想要,可以卸载或者不要勾选安装),如果是纯净版的,有的就要手动安装驱动,然后想要什么软件上网下载什么安装。最后重启,安装成功。第五步:用GHOST版光盘上的一键还原做好备份(也可以手动GHOST),就可以了。
2023-07-11 07:18:391

电池级硫酸锰生产属于化工类吗?

杉杉股份(600884)三元材料(NCM,用于小型电动工具,国内最大)占比30%,锰酸锂占比不到10%。年产1.5万吨的湖南杉杉(宁乡)正极材料生产基地正在积极推进。产品主要有钴酸锂、三元和二元。投产后,产能将达到2.7万吨,将进一步稳固公司的领先地位。江特电机(002176)涉足锂电池正极材料生产:投资8034.46万元(97.45%)成立江西江特锂电池材料公司,从事锂电池正极材料生产。正极材料是锂电池的关键原材料之一,正极材料的性能在很大程度上决定了锂电池的性能和应用范围。公司涉及的正极材料包括三元材料和富锂锰基正极材料的量产。众和股份(002070)众和新能源(公司持有其66.67%的股权)拟收购优派新能源股权。优派新能源的经营范围包括有色金属、仪器仪表、电子产品、冶金炉料、五金销售等。其三元材料前驱体生产线于2011年初建成投产,设计产能约2000吨/年。厦门钨业(600549)的电池材料是公司重点发展的行业之一。公司现拥有5000吨储氢合金粉和10500吨各种锂离子材料的生产能力。锂离子材料主要包括钴酸锂、锰酸锂和镍钴锰三元材料(NCM)。日本松下是公司电池材料的主要采购方之一。中国宝安(000009)公司间接持有贝特瑞51.91%的股权。2012年,贝特瑞公司在硅碳、软碳、层状锰酸锂、层状三元材料等下一代正负极材料的研发上取得突破,其中硅碳复合材料有望在2013年推向市场。党生科技(300073)主要经营范围包括钴酸锂、多元材料、锰酸锂等小型锂电池和动力锂电池正极材料的研发、生产和销售,是国内领先的锂离子电池正极材料专业供应商。目前,公司已将多种动态多材料实现批量生产。赣锋锂业(002460)2013年投资1.75亿元年产4500吨新型三元前驱体材料项目。年产4500吨新型三元前驱体材料项目投产后,年均新增销售收入3.46亿元,年均净利润3705.93万元。金瑞科技(600390)2014年6月,公司拟以不低于9.54元/股的价格定增不超过7000万股,募集资金不超过6.678亿元,用于年产1万吨电池正极材料生产基地建设项目(2.97亿元)和年产7000吨锂离子动力电池多元正极材料项目(3.57亿元)。红星发展(600367)股份有限公司申请了三元正极材料前驱体的制备方法,获得发明专利授权。但公司尚未生产锂离子电池三元正极材料和前驱体,正在研发和推广作为三元正极材料和前驱体的基础原料(前端产品)——高纯硫酸锰、高纯四氧化三锰等锰系列产品。格林美(002340)以荆门格林美为主体,拟投资9500万元建设年产3000吨动力电池用镍钴锰前驱体材料生产线。目前公司的三元材料生产线是生产钴-镍-锰前驱体材料。
2023-07-11 07:18:331

前海战略会成为南海争夺的前哨吗?

市场人士都在为中央的“前海战略”鼓舞不已,但是,很少会有人思考这样一个问题,为什么中央要推出一个“前海战略”,“前海战略”反映了中央决策层怎样的战略思维? 在回答这个问题之前,我首先要告诉你的是,“前海战略”更多体现的是一个战略命题,而不仅仅只是一个经济现象:在“前海战略”范围内内,传统的珠三角经济区域,北部湾经济区域,甚至是台海经济区域被巧妙的连成了一个整体,政策上和经济上的“合力”有利于打造一个类似于美国东海岸沿线那样的经济战略集群。 我们要尤为注意一点,“前海战略”更多是为了“对接”用的,而不是像市场人士所想象的那样,成为在南海前沿“战略制衡”菲律宾等国的“战略利器”。中央决策层的目的很明确,那就是将“前海战略”区域发展成为和东盟直接“经济对接”的战略桥头堡。“前海战略”是标志,而不仅仅是“政治过客” 对于“前海战略”的理解可能集中在两个层面:第一个层面和市场的普遍认识一致,即“前海战略”是中央为了应对南海危机而做出的经济应对。未来,中国为了巩固自己在南海上的主权地位,必定会在南海上开发更多的油气资源和旅游资源,这就需要“前海战略”所在区域的地方政府给予南海资源开发更多的政策便利和经济便利。因此,一个“前海战略”可以很好的统筹地方政府的政策步调的同时,可以将区域内的经济资源发挥到最大的集群效益。 最为重要的战略层面在于,“前海战略”更类似于天津滨海新区那样的政策和经济的集合体,“前海战略”区域将更多承载未来中央“新政策试验田”的重任,这重点体现在金融政策创新,中国人民币国际化进程中的离岸市场的建设经验的积累上。相比于经济上的利好,中央更关注中国未来金融利率改革和汇率改革这个“双头鹰”的“健康问题”。为什么不是在温州,也不是在上海?“前海战略”区域和香港以及东盟地区在地理上接近的优势,可以保证中国的金融改革进程在方向上“由外到内”的顺利进行,在这期间,“前海战略”区域所能提供的经济资源和地缘政治资源不是长三角经济区域所能提供的。 这让人很容易联想到山东省和吉林省正在建立的经济战略区域,该经济战略区域一方面体现了地缘政治特征,比如中国在朝鲜的经济投资;另一方面,中日韩FTA也需要一个地区性的连接纽带。相比之下,“前海战略”区域无论是在地缘政治上,还是在经济战略基础上,都极大的优于山东省和吉林省正在建立的经济战略区域。扩大“内需市场”,金融平台必不可少 在以往,市场普遍认为,扩大内需和家电补贴政策和汽车补贴政策可以划上等号,事实上,这样的看法非常片面,这样的政策也不会持久。扩大内需的前提是,中国民众的消费能力要得到全面的释放,这就意味着,普通居民在银行的存款欲望会减小,而对于金融投资理财产品的渴望会提升,当居民的钱能够更容易增值的前提下,居民的购物欲望才会提升。 需要补充一点的是,内需的提升也意味着国外更廉价优质的商品,会以更优惠的价格出现在中国消费者面前,这无疑需要人民币的升值作为支撑,提高人民币的升值空间才能为中国的消费者提供更大的国际购买力。以上的这些均需要金融体系内部改革的作为支撑,中国的金融系统要能够为居民的社保以及医保提供更完善的服务平台,在此基础上,中国的金融系统要更为便利的和国际金融结构对接,人民币直接结算的机会增加,人民币在国际市场上的流通更为便利,中国对于人民币和外汇资本的管制更为宽松合理。 很大程度上,在人口红利被挖掘殆尽的时候,中国未来经济结构调整的方向除了产业升级之外,将更多体现金融改革的身影,金融改革也将为产业升级提供更好的资金平台。 不要小瞧了“前海战略”,也不要小瞧了中央的战略思维,在这盘战略大旗中,金融改革和内需提振将是2012甚至是以后相当时段内,中国经济的“重头戏”…… 相关阅读: 七公司涉及小额贷款 关于珠三角金改的具体方向和措施,广东省副省长陈云贤在日前召开的广东省金融工作会议上透露,相比温州的金改方案,珠三角金融改革创新综合试验区政策“内容更全面、覆盖面更广、表述更具体”。 从温州金改市场炒作的规律来看,第一轮市场炒作的重点是小额贷款公司,金改区域内,参股小额贷款公司的上市公司股价均有大幅上升,因此,最先关注的仍将是广州、深圳、珠海以及佛山、东莞等地参股小额贷款公司的上市公司。 广东省金融办的数据显示,截至2011年末,广东省小额贷款公司达到196家,注册资本193亿元,累计投放贷款744亿元,贷款余额186亿元。 统计发现,广东省涉及小贷概念股的上市公司共计7家,分别是怡亚通(002183.SZ)、世联地产(002285.SZ)、东莞控股(000828.SZ)、金发科技(600143.SH)、中炬高新(600872.SH)、江粉磁材(002600.SZ)和深赛格(000058.SZ)。 七家小额贷款公司2011年合计盈利9450.84万元,其中,怡亚通持股100%的深圳市宇商小额贷款有限公司去年盈利最多,达到2571.43万元。其次是世联地产持股29%的深圳市世联小额贷款有限公司,去年净利润为2387.47万元;另外,东莞控股参股20%的东莞市松山湖小额贷款股份有限公司(下称松山湖小贷公司)去年净利润为1804.07万元,金发科技参股20%的广州萝岗金发小额贷款股份有限公司去年净利润为1511.71万元。 但是,唯一出现亏损的是深赛格持股51.71%的深圳市赛格小额贷款有限公司,去年净利润为-163.78万元。 “珠三角金改股”价值几何 那么,“珠三角金改股”的投资价值究竟有多大呢? 借助此次《珠三角金改方案》获批的政策优势,广东将全力打造广州南沙、深圳前海和珠海横琴三个金融创新和开放平台。因此广东前海、横琴、南沙将直接受益,相关上市公司存在机会。特别是拥有金融及小额贷款业务的上市公司有望受益。 除去参股小贷公司以外,涉及金融产业最多的还数东莞控股。 东莞控股2011年年报显示,除去持有松山湖小贷公司以外,其还持有东莞证券20%股权、东莞信托6%股权、东莞长安村镇银行5%股权。 丽珠集团(000513.SZ)还持有1.5065%珠海华润银行的股权,以及0.0004%的广东发展银行的股权。 《珠三角金改方案》尚未在市场上获得共鸣,“小贷概念股”也并没有受到市场的追捧。 “丽珠集团上涨和‘金改股"基本没关系,何况其持有两家银行的股权又非常之少。”上海一位基金经理坦言,尽管《珠三角金改方案》对广东地区金融机构是利好,也间接影响参股金融机构的企业,“但是真正实施起来还需很多时间,究竟能够带来多大的效益都是未知数。何况,前期的‘温州金改股"炒作已经路人皆知,因此,‘珠三角金改股"不会出现之前的爆炒效应。”
2023-07-11 07:18:121