作文一:《人变了的说说》2700字
人变了的说说
篇一:qq经典伤感说说 想念一个人的心情你不懂
一、有了你,我迷失了自我。失去你,我多么希望自己再度迷失。
二、假如每次想起你我都会得到一朵鲜花,那么我将永远在花丛中徜徉。
三、女人吃醋,再正常不过,男人吃醋,你就知道,他是认真的了
四、我早上愿意醒来为两个理由 闹钟和你。
五、有时,当我们被伤害时,我们并不知自己也在伤害对方。当我老了,越来越明白,越来越明白……
六、不同的时间,不同的地点,不同的人群,相同的只有你和我;时间在变,空间在变,不变的只有对你无限的思念~
七、愿你的爱乘着飞翔的白鸽,展翅高飞。
八、我需要他,正如我需要呼吸空气。
九、爱比大衣更能驱走寒冷。
十、我知道你最喜欢这首歌,我也知道你的心思,我想你。
十一、爱永远不会嫌晚。
十二、当我看到你,我知道我会永远在你身边,永远爱你。
十三、对于世界,你可能只是一个人,但对于某个人,你却是
整个世界。 十四、什么也瞒不过恋人的眼睛。
十五、不要怪我太敏感,我只是太在乎而已。
十六、遇见你是命运的安排,而爱上你是我情不自禁
十七、人需要点脾气,才能活出志气。
十八、爱你,所以不想入睡,因为真实比梦境还要美丽。
十九、我的心因你而笑。
二十、在爱人眼里,一千里的旅程不过一里。
篇二:说说人 说说心 说说人心
? 说说人 说说心 说说人心
篇三:激励人的哲理说说
激励人的哲理说说
一、 善待身边每一个人,因为,是他们成就了你的人生。记恨别人,其实就是拿痛点来折磨自己,因为不敢在明处复仇,所以就在暗地里攻击,不知不觉间,把自己的人格弄的越来越扭曲,就变成了一个活生生的小人。简单是福,众生之苦,苦于繁忙。忙财富,忙名利,忙着争抢,忙于计较得失荣辱。争来抢去终是空。
二、 人生就是道场,活着就是一种修行。内心就是信仰,灵魂就是图腾。你把内心修成什么样,你就会拥有什么样的人生。别总说命运在上天手里,其实你一出生,上天就把一半的命运交给了你。你所说的每一句话、你所做的每一件事,都是在折算你的生命价值,只不过,有的人是叠加,而有的人却是在递减。
三、 爱情里面,总有人被辜负,不是你爱谁,谁就一定会爱你。一个人的快乐,不是因为他拥有的多,而是因为他计较的少。这世界有时候就是这样,你善良,别人都来占你便宜。你邪恶,反倒是人人都来讨好你。
四、 不要去追问命运背后有什么玄机,既然是普通的人生,也没有什么大不了的玄机,怀一份善良,走一回春夏秋冬,放下自己那份无聊的个性,看看天空,空空如也,看看大地,翠绿依然,人生就是如此平淡,平淡的活着,从平淡中去寻找它的不平凡。
五、 为伟大的事业捐躯,从来就不能算作是失败。
六、 你现在所有的迷茫,大部分源于你之前的懒惰。
七、 不必站在50岁的年龄,悔恨30岁的生活,也不必站在30岁的年龄,悔恨17岁的爱情。很多事情是不能只拿结果来判定的,人生的每个阶段,都有每个阶段难以摆脱的困境,只要付出了自己该有的努力,就没什么好悔恨的。我们不能站在后来的高度,去批判当年的自己,这不公平。——扶南
八、 最怕就是三年一别,终生不遇。所以,请好好珍惜路过自己青春的人。
九、 成功,艰苦的劳动,正确的方法,少说空话。
十、 不张扬,不虚伪,低调而不颓废,平和而温暖,如云般洒脱,如莲般淡然,以冷静诠释宽容,用达观衬托高贵。做不到超凡脱俗,就让心住到红尘的边上,一半品人间沧桑,一半听宫阙仙音,许自己一个春暖花开,时时刻刻让心明媚。
十一、 人多仁少,需择仁交人。世长势短,不依势处世。
十二、 君子不可以不修身。
十三、 人生寂寞是一种力量。人经得起寂寞,就能获得自由;耐不住寂寞,就会受人牵制。
十四、 曾经相遇,总胜过从未碰头。
十五、 擎一盏清茶,任丝丝幽香冲淡浮尘,沉淀思绪,体会人生。其香泽荡心灵,其味超尘拔俗。茶事是事,事到无心皆可乐;茗品须品,人非有品不能闲。品茶,品好茶,品味四季蕴味,品淡人生精彩。茶如人生,句短味长。
十六、 微笑并不总是说明你是快乐的,有的时候,它只说明你是很坚强。这个世界很小,我们就这样遇见。这个世界很大,分开就很难再见。我想念我的童年时光。无忧无虑,没有责任,没有心碎,没有伤害,没有疼痛。
十七、 最坏的人,照样有人喜欢,最好的人,也有人说坏话。好坏是相对而言的,讨厌你,优点也是缺点,爱你,缺点却是优点。所以为什么要小瞧自己呢,或许我们有很多优点,只是没人发掘而已。从今天开始,远离讨厌你的人,去找那个爱你的人。当有人爱你时,你就是最优秀的。
十八、 活着就为了幸福,而幸福,是我们的追求,我们崇尚这样的生活,在人生的旅途上我们寻找着,追逐着。向往着,挣扎着,然而幸福其实就在我们身边。
十九、 不要以苦难为借口,不要自暴自弃。这世界是公平的,
上帝关了一扇窗,但他同时会为你打开另一扇门。众生是平等的,只要你永不放弃,只要你艰苦奋斗,总可以过上幸福的生活~还是伊索说的好:“如果你受苦了,感谢生活,那是它给你的一份感觉;如果你受苦了,感谢上帝,说明你还活着。
二十、 情之为伤,苦煞多霜;情之为悲,冷落成灰。几度萧索,素眉浅画,芳华一刹,醉翻几页,尽言飘洒,谁笺梦话,情若尘沙,浮生寒鸦。
二十一、 切莫垂头丧气,即使失去了一切,你还握有未来。
二十二、 青春里,总有些事情要努力去做,一米阳光,那是自然界的财富;一个微笑,是发自心灵的洗礼;一种快乐,是我们每一个人都追求的梦想;一份牵挂,把祝福永远相连;一声承诺,即使没有结果,也会让人感动;一份鼓励,让心灵拥有了阳光;一份理解,是善良对生命的演绎。
二十三、 不(转 载 于:wWw.CDfdS.cOM 池锝 范文 网:人变了的说说)要抓住回忆不放,断了线的风筝,只能让它飞,放过它,更是放过自己。必须找到除了爱情之外,能够使你用双脚坚强站在大地上的东西,要自信甚至是自恋一点,时刻提醒自己我值得拥有最好的一切。
二十四、 布鲁诺是勇敢的,因为他拥有为真理献身的勇敢;贝多芬是勇敢的,因为他拥有挑战命运的勇敢;屈原是勇敢的,因为他拥有为国投江的勇敢;戚继光是勇敢的,因为他拥有上阵杀敌的勇敢。
二十五、 只有珍惜幸福快乐的感觉,与自己快乐相处的人,才能远离痛苦与烦恼,才能拥有快乐的人生。能爱的时候好好爱,不爱的时候好好过。从从容容,简简单单,实实在在,亦是美好的人生。人生没有往返的车票,该轰轰烈烈就轰轰烈烈,该平平淡淡就平平淡淡;喝茶也好,品出真味就好。
二十六、
二十七、
忘恩的人落在困难之中,是不能得救的。 惜时,守时。有效利用时间。
作文二:《人变了的伤感句子》1100字
--------------------------------------------最新精品资料推荐-提供全程指导服务---------------------------------------------
人变了的伤感句子
1、谁浮夸了我的笑容,谁滥用了我的真心
2、其实我一直都在你身后,就差你一个回头
3、时间不会让我忘记你,只会让我习惯没有你
4、在爱里连真心都不能给,那才真的真正可笑
5、旧爱是释怀不了的感情,新欢是抗拒不了的激情
6、我还在原地徘徊,等待那早已没有旳未来
7、除了自己,没有任何人知道心到底有多难过
8、忘记曾有过的片段,这不是属于我们的未来
9、我不说,你不懂,这就是我们之间的距离
10、这个世界有两个莪,一个假装快乐,一个真心难过
11、故事怎么演才不寂寞,话要怎么说才不悲伤
12、不是不爱了,只是少了那份一定要在一起的坚决
13、你是我的整颗心脏,可是你却毫无顾念的拿走了
14、我很好,不悲不喜,不哭不闹,只是忘了怎么笑
15、命运撕扯着岁月的年轮,佯装不可一世的成熟
16、因为在乎,所以伤害,因为伤害,所以离开
17、友情进一步是爱情,爱情退一步却回不到朋友
18、我还只是未成年,经不起太多的痛彻心扉
19、总是在疼过之后,才能学会做一个全新的自己
20、一颗心里满满都是你,甚至连自己都有些多余
21、嘴角勾勒起一丝弧度,不知是微笑还是自嘲
1 / 2
--------------------------------------------最新精品资料推荐-提供全程指导服务---------------------------------------------
22、路在自己脚下,没有人可以决定我的方向
23、没心没肺的笑,只是为了不输掉仅存的骄傲
24、你从不曾爱过我,凭什么要我放弃那么多
25、一个人在世界旳角落,连寂寞都在笑我太堕落
,各位朋友,谢谢阅读本文档,本文档经认真编辑修改,可作为范文使用。如果此文不适合你,请进入本人文档主页进行搜索,相信能找到让你喜欢的~,
2 / 2
作文三:《人变了的伤感句子》800字
1、谁浮夸了我的笑容,谁滥用了我的真心
2、其实我一直都在你身后,就差你一个回头
3、时间不会让我忘记你,只会让我习惯没有你
4、在爱里连真心都不能给,那才真的真正可笑
5、旧爱是释怀不了的感情,新欢是抗拒不了的激情
6、我还在原地徘徊,等待那早已没有旳未来
1
7、除了自己,没有任何人知道心到底有多难过
8、忘记曾有过的片段,这不是属于我们的未来
9、我不说,你不懂,这就是我们之间的距离
10、这个世界有两个莪,一个假装快乐,一个真心难过
11、故事怎么演才不寂寞,话要怎么说才不悲伤
12、不是不爱了,只是少了那份一定要在一起的坚决
13、你是我的整颗心脏,可是你却毫无顾念的拿走了
2
14、我很好,不悲不喜,不哭不闹,只是忘了怎么笑
15、命运撕扯着岁月的年轮,佯装不可一世的成熟
16、因为在乎,所以伤害,因为伤害,所以离开
17、友情进一步是爱情,爱情退一步却回不到朋友
18、我还只是未成年,经不起太多的痛彻心扉
19、总是在疼过之后,才能学会做一个全新的自己
20、一颗心里满满都是你,甚至连自己都有些多余
3
21、嘴角勾勒起一丝弧度,不知是微笑还是自嘲
22、路在自己脚下,没有人可以决定我的方向
23、没心没肺的笑,只是为了不输掉仅存的骄傲
24、你从不曾爱过我,凭什么要我放弃那么多
25、一个人在世界旳角落,连寂寞都在笑我太堕落
4
作文四:《人变了 心累了的说说》1100字
1、爱一遍,叫人老了好几十岁
2、爱了玩了伤了闹了违了负了,最后我们都累了
3、认识你,我的心好累。
4、从单纯到冷漠是怎样的疲惫。
5、刹那间我心疲倦,只有无尽的恐慌。
6、熟悉变成疲倦,疲倦变成了厌恶。人变了 心累了的说说。
7、每天嘻嘻哈哈的笑着,只有自己知道有多累。
8、一个人懦弱到,提不起早已风干の曾经。
9、一次痛彻心扉的经历,抵得上千百次的告诫。
10、你可明白,如果有一天我不折腾了不闹了,那代表着什么。
11、等到互相都没话说了,这段感情也就结束了。
12、心累和在乎一个人的程度成正比。
13、一个人的世界,病了,一个人扛,烦了,一个人藏,痛了,一个人挡。人变了 心累了的说说。
14、多一点爱就多一点疲惫。
15、阳光扼杀着颠沛流离的荒凉。
16、有些累身与心不知疲惫感从何而来
17、累了,痛了,想的多了。
18、挤不进去的世界,就不要挤了碍了别人的眼累了自己的心
19、生命颓然着一切毫无意义的事。
20、黑暗将我包围,在忍也没路退。
21、疲惫的只是那一双赶路匆忙的脚而已,而不是那一颗向往远方的心。
22、生活似一滩死水,没有任何波动。
23、太多太多的为什么,我沉默,不解释。
24、想要关在自己的世界,不想走出来。
25、每个人都有自己的故事自己的青春,只是都埋在心里不愿诉说。
26、因为寂寞,所以彷徨。
27、至今俄都不知道什么是爱情。
28、我不是高傲,也不是胡闹,只是厌倦了那些随时可能失去的依靠。
29、(说说 ) 流年,诉说着无力。
30、不属于自己的东西,要来有何用--最终还是会变成他人的
31、炎热的夏日,却依旧温暖不了我的心。
32、虚无缥缈的爱情,我已无力再乞讨
33、情情爱爱,爱来爱去,你们每天这样累不累。
34、人累了,可以歇歇,那么心累了,该怎么办?
35、用情深至无情,人未老心苍茫。
36、我伤的彻底,我爱你爱到绝望。
37、单调而沉闷的空气窒息着我幼小的心灵,缠绕着我飞翔的翅膀。
38、悲伤的情歌重覆点播,把疲惫的心再加上枷锁,以后我会自己过
39、没有眼泪,没有思想,安安静静。
40、每一段笑声里,都隐藏着别人不能懂的疲惫
41、活在
分页:??????1 ????????????2 ??????3
作文五:《人变了地方没变的说说?》15300字
人变了地方没变的说说,
导读: 人变了地方没变的说说,(共5篇)北上广如果没有了外地人会变得怎样北上广如果没有了外地人会变得怎样,转载哥 2015-07-22在北京、上海、广州、深圳等大城市,外来务工人员一般被本地居民称为“外地人”。春节期间,大部分“外地人”回家过年,大城市随即变为“空城”,人少了,车也少了,公交不挤了,整个城市突然变安静了??这是本地居民...
欢迎来到招生考试网
://.chinazhaokao./说说栏目,本文为大家带来《人变了地方没变的说说,》,希望能帮助到你。
篇一:《北上广如果没有了外地人会变得怎样》
北上广如果没有了外地人会变得怎样,
转载哥 2015-07-22
在北京、上海、广州、深圳等大城市,外来务工人员一般被本地居民称为“外地人”。春节期间,大部分“外地人”回家过年,大城市随即变为“空城”,人少了,车也少了,公交不挤了,整个城市突然变安静了??这是本地居民的一大感受。
最近,有媒体做了一个假设式的调查问答:假如这些大城市里上千万“外地人”突然消失,它将会变成什么样子,这引起众多网友热烈讨论。但看某些网友给出的答案,还是有些“骇人听闻”。
以上海为例,2013年,上海总人口为2415
万人,其中拥有上海市户籍的人口1432万人,外来人口983万人。大量人口消失,最直接的影响出现在劳动力市场。按照上海的人口年龄结构以及人口普查给出的从业人员比例,2415万人中正在工作的人口有1341万人,约占总人口的55.5%。其中,本地户籍的从业人员有635万人,外来户籍的从业人员有706万人。也就是说,本地户籍人口有44%在工作,而外地户籍人口有72%在工作。 分行业的情况如下:人变了地方没变的说说,。
上图的单位为万人。从总劳动人口看,外地户籍人员所占比例已经超过半壁江山。分行业看,一些行业已经完全离不开外来劳动力,典型的行业有居民服务和其他服务业(77%)、建筑业(74%)、住宿和餐饮业(74%)、批发和零售业(62%)、制造业(61%)。
在以上外来人口占比较多的行业中,和人们生活最直接相关的是住宿和餐饮业、批发和零售业以及居民服
务和其他服务业。前两者从字面上就可以理解。居民服务和其他服务业主要包括家政服务、理发、清洁工、修理维护四类。这三大类行业中,七成五到八成劳动力是外地户籍人员。
外地人口消失一个星期
如果他们消失一个星期,首先令人感觉到的是:
1、许多餐馆因缺少服务员而关闭,不能下馆子了;
2、商店、便利店和超市缺少营业员,超市的收银出口也减少许多,线下购买东西变得很不方便。绝大部分快递员也不见了,网上买东西只好使用仍然有本地户籍工作的EMS,隔天到变成半月到;
3、钟点工消失,没有地方理发,街道楼宇没有人清扫,垃圾筒满溢也没有人清理,修车、配钥匙的地方消失。人变了地方没变的说说,。
外地人口消失一个月
在外来人口消失一个月后,许多餐馆关门大吉,而剩下的餐馆在不那么激烈的竞争下,提高了服务员的工资和产品价格,本地户籍人口补上了劳动力短缺,问题不会太严重。
但需要注意的是,走掉的“外地人”有72%是生产者,而本地人只有44%是生产者,故外来人口消失必定会造成总需求大于总供给。尤其是对于餐饮、家政服务来说,外来人口消失,会导致五分之四的供给走掉,但是餐饮和家政的需
求不会减少五分之四。
于是,钟点工、服务员、快递和理发师重新出现,只不过价格出现了显著提升,一部分人只好放弃了钟点工服务,下馆子时加付服务费并额外给服务员小费、忍受半个月才到的网购、减少理发频率或者自己理发、自己学会擦车和修车——这就好像过上北美留学生的生活。 外地人口消失半年
制造业工人消失五分之三,对大众汽车、振华港机等产品具有差异化的企业,或会提高工资招工。但另外一些产品竞争激烈的企业,提高工资则意味着失去竞争力,例如外来员工超过20万的广达上海制造城,或会收缩流水线支撑个半年。
此时,大量制造业企业会选择关闭上海的厂,转移到其他劳动力充裕的地方。
不仅劳动力价格上升会带走企业,企业本身的流出也会带走许多企业,例如一些企业虽然苦于上海市的高工资水平,却因与上下游企业进行低成本运输的集聚优势才留在上海。
但如果相应的上下游企业流出上海,这个优势消失了,剩下的企业就会加速流出。企业减少,当地税收减少,财政收入减少,而公共服务随之减少。
外地人口消失一年
2013年,上海市共出让0亿元土地。有了未来数千亿元土地出让和土地回报的抵押,加上杠杆,2014年,上海市各级政府负债5194亿元,其中3704亿银行贷款、826亿建设-移交项目以及360亿政府债务。土地价格上升,政府可以卖地赚钱;有了土地做价格稳定的抵押物,融资平台公司可以贷款,可以借新债还旧债;商业发达,租金充沛,政府就可以稳稳地接手BT项目而不用担心无法付钱。
但是在人口消失的前提下,一系列连锁效应逐渐产生:
1、建筑工人减少四分之三,原本一年可造好的商住楼,需要五年竣工;原本三年不到即可修好的地铁,需要十年才能竣工,商业用地产生回报的期限拉长。便利店、餐馆减少70%,商业设施无法获得租金回报。商业用地的吸引力下
降。
2、消失的1000万外来人口,每户2.49人,约有400万户家庭。这些家庭中,拥有自己房产的仅有12%,除去居住单位住房的人口,还有70%左右需要租住私房。根据2012年上海市流动人口动态监测,每个租住私房的家庭平均每月缴纳房租658元。也就是说,每年支付221亿元的房租。这部分房租消失,导致一些贷款购房的家庭无力偿还贷款,开始抛售房产,居住用地的吸引力也下降。
篇二:《个人说说》
1. 做人,人品为先,才能为次;做事,明理为先,勤奋为次。生活就是修行,不管在什么道场中,都要
智慧的扮演当下的角色,在实践中学习,在错误中修正,在感恩中前行,在爱与支持中绽放光芒
弟弟,学了还要用。当内心充实的时候,看到路边绿绿的树都会觉得幸福~身为老师只有处处存欢喜心,才能有积极的向上的向善的言语心动去教化感染您的学生。心怀有慈悲心,敬畏心,应以“为万世开太平,为往圣继绝学”为终身志向。
1. 一个人真的在享受独自的月色呀~这是什么呢,这是寂寞,这是难耐~这是一个人的空虚~也是一个人的无助~一个人真的有太多太多的无奈呀~兄弟姐妹们,晚安吧~我睡不着你们可不能睡不着呀~夜梦吉祥~
2. 在我们生命中有无数的老师,有授业,解惑的恩师,有指点迷津的良师,有相知相伴志同道合的朋友,有并肩奋斗的同事,有雪中送炭的“贵人”,,感恩生命中所有的老师,祝您教师节快乐~
3. 佛经谈有十二种病1、随恶人言是病。2、邪妄谄曲是病。3、言语伤人是病。4、贪爱色欲是病。5、杀害众生是病。6、不敬父母是病。7、作恶不悔是病。8、愚痴颠倒是病。9、侵占他人是病。10、好觅人过是病。11、无惭无愧是病。12、我慢贡高是病。
4. 什么叫“瘾”欲望就是,玩什么上瘾了,那就是你的欲望战胜了你~当你战胜了你的欲望你就没有瘾了~
5. 独山天气就是好,不用风扇也睡好。昨晚差点去叨扰,还好他家中藏有宝。我的朋友更加好,让我睡了安稳觉。小康日子何处找,今日胜过小康好。家的日子就是好,天天活得就像宝。人生天天如今日,何愁哪天不幸福~
儿女们都出去了~留下的全是孤寡老人,你们看一下,当我们出来以后,在家的父母是多么的劳苦~为我们守着那一个没有人味的家,现在又是干旱,看到真是心酸呀~父母官,何为父母官,如此景象,你们以何种心态去拿那一份工资,你们在享受的时候~这些老人却在等着那一口救命的水~也许你们冲凉的那一点点水,也许你们,花掉的那一点钱,可以救活多少人呀~
1. 一切随O人变了地方没变的说说,。
现在的我们(80,90)知道什么是婚姻吗,知道婚姻意味着什么吗,当你们选择了你们的伴侣时,一心想要嫁给他(她),一心想要和他(她)在一起,一心想要为他(她)去努力,一心想要为他(她)做任何事情,当你们真正的领证的那一刻,你们做好准备了吗,这时你就要对你所做出的行为负责了,这时婚姻就是一种责任~当你们想要孩子时,你们就开始耕地了,开始劳累了,也许你们有些时候觉得还是比较开心比较有成就时,你们的责任的体现就出来了,当孩子出生时你们还依然开心,当他吃要钱,拉也要钱的时候,你们是否想过那是你们暂时的义务呢,当在这时,你会说那两个字吗,“离婚”~你知道这两个字意味着什么吗,这时你的问题就来了~也就是你对婚姻的果断,简单,草率的决定,所要付出的代价~这时你们的所作所为可能会想,我大不了再找一个,当你们这样想的时候,请你们看一下你们周边的人是已经走过那两个字的,现在是什么样子呢,当你们做出这个决定后,会影响,上是双方父母,下是自己的孩子~这时
他们可能所背负的不只是失去你们任何一方,也不是以后的美好~而是背负着别人的另类眼神和不堪的话语~这时你知道婚姻的含义了吧,如果你们真的领到另外一个小本的时候,你们也将会失去对方,你们的孩子将会失去任意一方,从这以后他也就会背负着任何人都不想背负的那么一句话“你没有爸爸~你没有妈妈~”这时也就是说,他是单亲了呀~你们的伤害对他有多大的伤害~你们的这一举动有多么的严重~你们想过吗,我们的父母为何把我们抚养成人,他们有没有不愉快的时候呢,有没有活不下去的时候呢,有~为什么他们却不会提出那两个字呢~而现在还在一起生活呢,这时就说到一个字了,那就是“忍”为什么呢,为了这个家这也是最起码的呀~他们知道要是做了你们这样的决定后,受伤的就会是我们的爷爷奶奶,就是我们啦~为什么今天的我们却是如此的享受呢,要有这么多的所谓的追求呢,说实话我们现在自己都没有做好自己的本分,哪有不败家的道理呀~我们一生为的是什么呀,为的就是有一个家,
两个人一起经营的家,什么又叫家呢,就是上有老下有小,这才叫做家~这个家我们这些成员缺一不可呀~就让我们一起走吧~走出自己的路,不管我们选择的路是怎样的,我们也要坚持下去,跌倒了在起来再走,为了下一步走得更好,我们得把路铺好了,在我们组建这个家时,也要慎重的考虑呀~你们在一起了路可慢长了,你~想好了吗,想好了我们就一起走吧~朋友们用心吧~我没有很多更华丽的语言,只有心里的一点点东西给你们了~希望你们幸福~立松敬上~
篇三:《很伤人的经典短说说大全》
一、骗子是最真心的,他是真心骗你的
二、别试图走近我 我一颗心除了他什么
也没有
三、自以为的刻骨铭心你却早已忘记
四、你一念之差我动情一场
五、忘了告诉你 你一直在我心里
六、失我者,永失
七、【so now I'm all alone】现在只剩孤零零的我
八、我拼命跑,却跑不出你的回忆
九、他狠狠嘲笑过我的义无反顾
十、忘了你,亡了我
十一、你多无情多忘情,我多念旧多勇敢
十二、我爱上了一个词,叫造物弄人
十三、我的记忆害了我,害我忘不了过去
十四、我以为我的温柔能给你整个宇宙
十五、对 我的坚强只是假象 可那又怎么样
十六、他心里的每一寸 都属于另一个人人变了地方没变的说说,。
十七、我真羡慕陪你到最后的那个人,我知道不是我 十八、祝你幸福,这句话真特么俗,俗不可耐
十九、我什么都不要,只要回到从前就好
二十、我想给你全世界 却忘记了你需要
的不是我
二十一、可是你偏偏刺痛了我最敏感最纤弱的那根神经
篇四:《喜欢一个人的说说:认识你以后,不喜欢你就变成了世上最难的事》
1(纵使我有千般好,你也看不到,因为你没有一双爱我的眼睛。
2(我爱你的时候,你吃屎我都觉得可爱,我不爱你你的时候,你吃饭我都觉得你在吃屎。
3(相似的人适合玩闹,互补的人适合终老。
4(哪有什么好脾气,我的好脾气,还不是因为我爱你。喜欢一个人的说说:认识你以后,不喜欢你就变成了世上最难的事。
5(我多么希望多年以后和我走向婚礼殿堂的那个人,是我青春年少时义无反顾,不掺任何虚假爱上的你。
6(据说,一个男孩喜欢你,他会一直不叫你的名字。
7(每个人的心里都会有一个人,永远不会提,却也永远不会忘。
8(想用最初的心,
9(遇见你之前我没想过结婚,遇见你之后我没想过跟别人结婚。
10(有些事,不说不代表没发生,比如我爱你;有些事,说了不代表是真的,比如我忘了你。
11(疼爱大概就是:我不讲理,你也让我几分。喜欢一个人的说说:认识你以后,不喜欢你就变成了世上最难的事。
12(爱情无非是两种结局,相濡以沫厌倦到终老,相望江湖缅怀到哭泣。
13(能放在心上的人不多,毕竟心的面积有限。
14(别让自己太累,太用力的爱情,往往太容易失去生命力。
15(有一个人,你总说要放下他,却总是忍不住又拿起来回味;有一个人,你真的好想他快乐,所以你宁愿自己不快乐;有一个人,离开他的时候你笑了,但是一转身,早已泪流满面。
16(认识你以后,不喜欢你就变成了世上最难的事。
17(我知道,就算我们重新认识几百遍你也不会喜欢我。
18(我没有讨好你的天份,但我比谁都认真。
19(如果你放不下那个错的人,那么你永远也找不到那个对的人。
20(喜欢一个人的感觉大概就是:这条路为什么不再长一点,这个电梯为什么不再慢一点,哪怕和你多呆一秒钟都觉得满足。
21(一个男人对女人有欲望那叫喜欢,为她忍住欲望那叫爱。
22(爱一个人,把她惯坏,她就是你的了。
23(最好的恋情是,你可以彻底地做自己,并且你的他依然迷恋真实的你。
24(想你的人自然会来见你,爱你的人会想尽一切办法来到你身边。
25(我喜欢你就像喜欢春天的薄毛衣,夏天的冰汽水,秋天的黄色落叶,冬天的大棉袄。
26(你怕生人吗?不怕那帮我生一个吧
27(叫不动我的时候,请大喊我爱的人的名字。
28(你不懂那种看你一眼就会笑的人是有多么的喜欢你。
29(愿意赌上所有时光,只为换你与我共白头。
30(女人的温柔是男人疼出来的,女人的怨是男人冷出来的,女人的乐是男人暖出来的,女人的美是男人娇出来的,女人的勤是男人夸出来的,一个正常理智的女人变成一个神经病制的泼妇也是男人逼出来的。
相关推荐爱一个人的说说:有些心动,一旦开始,便覆水难收
篇五:《关于心情不好的说说》
1、人越长大,就越习惯压抑内心的真实感受,不再放声大哭放声大笑,什么都只是淡淡的点到为止。好像越来越没有什么事,
可以伤心到落泪,再也找不出,释放伤感的出口。如果有时间有机会自由的哭,总是好的;如果可以狠狠流出眼泪,就说明心没有干涸。现在明明感觉到痛,却再也无法畅快的流泪。关于心情不好的说说。
2、时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,夜深人静,突然觉得不是睡不着,3、永远也不要记恨一个男人,毕竟当初,他曾爱过你,疼过你,给过你幸福。永远不要说这个世界上再也没有好男人了,或许明天,你就会遇到爱你的那个男人,在你眼里,他再坏也是好。其实,分手之后没必要记恨,更没必要自暴自弃。关于心情不好的说说。爱情不属于固定的两个人,而是合适的两个人。
4、拼命的喝醉,只是为了给哭泣找一个借口。
5、我很好,不哭不闹,一个人只要不再想要,就什么都可以放下;向来缘浅,奈何情深。彼年豆蔻,谁许谁地老天荒。谁的寂寞覆我华裳,谁的华裳覆我肩膀。谁把谁真的当真,谁为谁心疼。爱的最高境界是经得起平淡的流年。等待,是一生最初的苍老。有些事一转身就一辈子。
6、再烦,也别忘微笑,再苦,也别忘坚持,再累,也别忘爱惜自己。
7、孤单并不可怕,怕的是一直孤单;爱上一个人并不可怕,怕的是一发不可收拾;分手了并不可怕,怕的是一直还放不下;生病并不可怕,怕的是一病不起;输了并不可怕,怕的是一败涂
地;错了并不可怕,怕的是一错再错;失业并不可怕,怕的是一直不去找工作;没钱并不可怕,怕的是一直要等人来救济。
8、你忙,忘了我需要人陪;你忙,忘了我会寂寞;你忙,忘了我在等你电话;你忙,忘了你对我的承诺。但你知不知道,爱情不是等你有空的时候,再去珍惜的。爱情是点点滴滴的积累,一点一滴,慢慢珍藏在心底,慢慢在心底酝酿,两个人一起来呵护??
9、天已微凉,我已长大,学会微笑,学会坚强,学会不再掉眼泪,却依旧学不会忘记他。
10、沙滩上留下的脚印,证明我们曾经依偎过。
11、想哭的时候,我会闭上眼睛不让它流泪;孤独寂寞的时候,我会静静的想着某人;伤心的时候,我会找个地方静静的发呆,然后告诉自己,还是要面对坚持下去;难过的时候,我会伪装自己,对别人说:”我很好”我很开心;失落的时候,我会笑着对自己说,没事的,一切总会过去。
12、我爱你爱的死心塌地,你却伤我伤的那么彻底。
13、我难过时不喜欢说话,我喜欢一个人安安静静的不需要安慰,我喜欢一个人站在窗边望着远处发呆,我喜欢一个人毫无目的的走着,一个人哭泣、一个人擦泪、一个人难过、一个人分担。看到眼前的视线模糊到清晰,清晰后模糊,反复不停。才发现,原来,我一直都只是一个人。
14、累了,就休息下吧,何必把自己逼的那么紧呢;累了,就
让自己的心停下吧,它也需要时间去整理;累了,就停下吧,哪怕是驻足拍拍灰尘,让心灵重归洁净;累了,就停下吧,这不是懦弱的逃避,而是自我的释放;累了,就停下吧,哪怕只是轻轻抬头,也许会有更好的风景。
15、有时,爱也是种伤害。残忍的人,选择伤害别人,善良的人,选择伤害自己。
16、心里些许的失落,原来有很多东西完全不是个人能掌控的,于是就有很多很多说不出口。于是就微笑着让该发生的发生;该消失的消失,该来的来、该去的去,该说的说、该闭的闭,该猜的猜、该想的想,该写的写、该停的停;我还是我,我一直在这里。你还是你,你已经离开这里。
17、有些事情,只有经历了,才有穿透心扉的体验;曾经的人,只有从心底放下了,心灵才会真正地解脱。没有哪件事,能够一直捆住你的手脚;没有哪个人,能够成为你的永远。所以,想做的事,只要有能力做,那就不要等,不要害怕失败;想付出的爱,只要觉得可以,那就大胆些,不要留下遗憾。
18、誓言变成了谎言,我的心被你撕成了碎片。
19、一个人的世界,很安静,安静的可以听到自己的呼吸声和心跳声。冷了,给自己加件外套;饿了,给自己买个面包;病了,给自己一份坚强;失败了,给自己一个目标;跌倒了,在伤痛中爬起,并给自己一个宽容的微笑。
20、现在的我变得那么的多愁善感,喜欢一个人静静的听着伤
感音乐;喜欢一个人坐在那里发呆不知道在想什么:喜欢一个人在网上看一些伤感的文章。真的找不到一点能让我开心的事,这几年让我习惯了,习惯了一个人偷偷的流泪,伤心的时候我学会了一个人独自承受,在别人面前总是勉强的微笑着。
21、总有很多东西无法挽留,比如走远的时光,比如枯萎的情感;总有很多东西难以割舍,比如追逐的梦想,比如心中的深爱。()人生路上有很多未知因素,时时改变着我们行进的方向。一条路走不通的时候,不要眷恋前面的风景,不要回望来时的行程,鼓足勇气转个弯,或许就能转出生机,转出柳暗花明。
22、生命就像是一个疗伤的过程,我们受伤,痊愈,再受伤,再痊愈。每一次的痊愈好像都是为了迎接下一次的受伤。然后在不断的受伤与愈合中,我们学会了成长。
23、曾经我是一个任性的孩子,任性的以为你只属于我,我只属于你。谢谢你告诉我,这个世界上谁都不是谁的,我们终究只会,属于我们自己。
24、没有你,就算把世界给我,我还是一无所有。
25、有时莫名的失落,说不清为什么,只是心里不停涌起一阵阵的怕。我怕看到自己老去,怕没有人会爱自己,怕自己不会爱上谁。可又再不停地找那一份真爱,不停地完美自己。怕身边那些交心的朋友的,一个一个离开。怕我爱的人不出现,出现的人不喜欢,又不愿改变对爱的执着,静静地等待着那份天荒地老。
以上就是招生考试网
://.chinazhaokao./带给大家不一样的精彩说说。想要了解更多《人变了地方没变的说说,》的朋友可以持续关注招生考试网,我们将会为你奉上最全最新鲜的说说内容哦! 招生考试网,因你而精彩。
相关热词搜索:人变了的说说 没人理的说说
作文六:《人变了 心累了的说说_5》1000字
人变了 心累了的说说
1、爱一遍,叫人老了好几十岁
2、爱了玩了伤了闹了违了负了,最后我们都累了
3、认识你,我的心好累。
4、从单纯到冷漠是怎样的疲惫。
5、刹那间我心疲倦,只有无尽的恐慌。
6、熟悉变成疲倦,疲倦变成了厌恶。
7、每天嘻嘻哈哈的笑着,只有自己知道有多累。
8、一个人懦弱到,提不起早已风干の曾经。
9、一次痛彻心扉的经历,抵得上千百次的告诫。
10、你可明白,如果有一天我不折腾了不闹了,那代表着什么。
11、等到互相都没话说了,这段感情也就结束了。
12、心累和在乎一个人的程度成正比。
13、一个人的世界,病了,一个人扛,烦了,一个人藏,痛了,一个人挡。
14、多一点爱就多一点疲惫。
15、阳光扼杀着颠沛流离的荒凉。
16、有些累身与心不知疲惫感从何而来
17、累了,痛了,想的多了。
18、挤不进去的世界,就不要挤了碍了别人的眼累了自己的心
19、生命颓然着一切毫无意义的事。
20、黑暗将我包围,在忍也没路退。
21、疲惫的只是那一双赶路匆忙的脚而已,而不是那一颗向往远方的心。
22、生活似一滩死水,没有任何波动。
23、太多太多的为什么,我沉默,不解释。
24、想要关在自己的世界,不想走出来。
25、每个人都有自己的故事自己的青春,只是都埋在心里不愿诉说。
26、因为寂寞,所以彷徨。
27、至今俄都不知道什么是爱情。
28、我不是高傲,也不是胡闹,只是厌倦了那些随时可能失去的依靠。
29、(说说 .zhikunedu.) 流年,诉说着无力。
30、不属于自己的东西,要来有何用--最终还是会变成他人的
31、炎热的夏日,却依旧温暖不了我的心。
32、虚无缥缈的爱情,我已无力再乞讨
33、情情爱爱,爱来爱去,你们每天这样累不累。
34、人累了,可以歇歇,那么心累了,该怎么办,
35、用情深至无情,人未老心苍茫。
36、我伤的彻底,我爱你爱到绝望。
37、单调而沉闷的空气窒息着我幼小的心灵,缠绕着我飞翔的翅膀。
38、悲伤的情歌重覆点播,把疲惫的心再加上枷锁,以后我会自己过
39、没有眼泪,没有思想,安安静静。
40、每一段笑声里,都隐藏着别人不能懂的疲惫
41、活在妳給惪陰影中,我真惪好累。
42、你说得真对,说永远多累。
43、每天重复过着一样的生活,没有任何意义
44、累了,真的累了,這個虛僞的面具,帶久了,舍不得拿下
45、心若倦了,一切都不曾回到过去。
作文七:《这一路走来,人变了.......》300字
人生一路走来,人变了
变得知道心疼自己了
友情,爱情都虚无缥缈
人总得学会照顾自己,守心自暖
人生一路走来,人变了
变得学会感恩了
滴水之恩,当涌泉相报
谁真诚对我,我真情奉还
只有懂得感恩,才能收获真心
人生一路走来,人变了
变得学会自尊自爱了
人虽不完美,但独一无二
只有看重自己,才会让人更看重你
人生一路走来,变了
变得不再怨天尤人了
事业的成败,感情的聚散
都掌握在自己手里
只要努力了,坚持了
感情不会负你,事业更不会亏待你
人生一路走来,人变了
变得不再争强好胜了
命里有的终须有,命里无的莫强求
是你的终会不离不弃
不是你的,又何必费尽心机
人生一路走来,人变了
看开不是放弃,看淡不是庸俗
改变的是脾气和个性
不变的永远是一颗善良的心
人生一路走来,你变了没有……
作文八:《人变的作文同学》3300字
关于人同学的作文:我的同学
山西太原清徐县清徐县县城第二中学初二:侯翔
篇二:一个关心同学的人作文400字
我们班有一个十分可爱的人,她笑时两颗两颗大门牙别有一番韵味,你一定猜到她是谁了吧,没错,她就是薛亦蕾。 今天真令我郁闷,因为全班唯独我一人没拿到黄冈达标卷,我一向按时上交,怎么说&&不顾多想,我就向老师借了一张卷子暂时应付一下。下课后,同学们都各做各的,各玩各的,根本没人帮我找黄冈,更没人道一声:你的黄冈找到了。忽然我发现薛亦蕾正在存放黄冈的柜子前转悠,还不时托托腮帮子,抓抓头发,一副难题未解的样子。我心一惊,难道她在帮我找黄冈,我不敢想,便继续埋头做作业,可没做几题好奇心却指使我继续观看。正当我放下笔,抬起头时,竟发现薛亦蕾从柜子后面抽出一本黄冈。她迅速翻开又合上,双手合十夹着那本黄冈,拍了拍上面的灰尘。望着她惊喜的背影,我想她一定在笑,两颗大门牙也在笑。李慕颜你的黄冈~她快步走来,略带自豪地挥舞着黄冈对我说。我看着她和她那对可爱的大门牙,笑了,她也笑了。事后,红老师表扬了薛亦蕾说她忧她人之所忧,想她人之所想
1
&& 她又笑了,笑得那么开心,两颗大门牙在那一刻显得异常可爱,我知道,她准是一名天使的化身。江西上饶钟山六年级:1228725926
篇三:人物描写作文600字:我的同学
人物描写作文600字:我的同学
人物描写作文600字:我的同学
一头油黑亮丽的头发;一双乌黑明亮的美眼;一张樱桃一样红润的嘴唇,一双纤细的手;让那个人显得格外美、文静~
她是一个爱学习的同学~在自习课上,有的同学在画艺术风味的图画;有的同学在下有趣的象棋;有的同学在猜字谜,而她,却在认认真真、聚精会神地做作业~这难道不是一个爱学习的人吗,
她不仅爱学习,而且爱思考~在一次数学课上,老师大步走向讲台,给同学们提了一个问题。这个问题颇有难度,其他同学在装模作样地假思考,因为他们心里有一个共同点,那就是等老师讲答案~但那位爱思考的同学,在老师说话前就陷入了沉思。不一会儿,老师激动地说:“来,哪位同学说说你是怎么想的,”教室里顿时变得鸦雀无声。突然,那位同学勇敢地举起那纤纤细手,老师眼前一亮,“来,这位同学你说一说。”她井井有条、胸有成竹地说:“因为这个三角形是??所以??”“嗯,不错~”老师很肯定地说。坐下后,
2
那同学像吃了蜜一样,甜甜地笑着~
这位同学,她不仅爱思考,爱动脑,而且她作文棒~在一次语文课上,老师以她高超的知识和清楚的话语,给我们讲述了作文怎么写好。最后,开始写作文。有的同学像吃了兴奋剂一样,飞快的写;但有的同学似乎没听懂老师讲的,陷入了思考中。可那位同学不一样,她要求速度快又求字写好。她把字写得整整齐齐,很清秀。又把速度也调快,两全其美,让老师看了啧啧赞叹~再加上她爱看书,所以作文好词多、好段多,让作文更加生动、有趣~
那个人爱学习;那个人爱思考;那个人作文棒~她,就是我的好同学-——彭诗蕊~ 《人物描写作文600字:我的同学》
篇四:描写同学的作文:这个人不平凡
描写同学的作文:这个人不平凡
描写同学的作文:这个人不平凡
平凡,是一个人的名字,是我的同学。一开学他刚介绍自己时,我看他其貌不扬就想,也许他还真是“平凡”呢~可有件事让我打破了这个想法。
昨天下午,学校在操场举行读书漂流活动。我,杨俊哲,平凡聚在一起,组成了3人小组合。为我们班的书籍做推广。
杨俊哲手拿着从老师那借的扩音器,我举着大海报牌,平凡拿着水壶。边走边吆喝:“书是人类进步的阶梯,是人
3
们通往世界的桥梁??”“四(5)班读书漂流活动,买三送一,还有小礼品送啦??”邻班的同学闻声赶来,争先恐后地问:“真的假的,有这么好吗,”“四(5)班在哪边,”看着四周把我们团团围住的同学,我和杨俊哲一下没反应过来。“在西面呢,我带你们过去。”平凡挺身而出,“我们的书可多啦,有科技书、童话书、儿童小说??”他边说边用手指着。
他们走到我们班的书籍摊位上。只见平凡口若悬河地介绍着,那些同学如饥似渴地翻看着。为了拿上中意的书和我们班上的“营业员”讨价还价,花样百出。看到这里。我一拉杨俊哲:“走,我们继续。”我们又吆喝起来。这时平凡跑来,“成睿,手累不累啊,我换你~”望着他满头大汗的脸:“不必了,我还可以,你还是休息会吧.”“那我给他们当向导去。”
看到平凡这乐于助人的劲儿,我们都刮目相看了。
平凡,虽然平凡,但却有颗不平凡的心。
篇五:作文(同学改)
友情最珍贵 1 友情就像水,只要你不浪费,那就是取之不完,用之不尽的;友情、它是一种只有付出了同样一份这样的东西才可以得到这种东西。它和亲情爱情一样是一种抽象的令人捉摸不透的东西但却要比它们更值得我们去珍惜友情它到底是什么东西呢你只有付出关爱付出真诚才能得到的东西。 2 可我呢, 我能得到真正的友谊吗,
3 在我的心里,就想着:好人好报,只要你对别人好,别
4
人就会对你好,别人就会以同样的态度去对你,但是,总觉得有一种声音在告诉我,没有人会这么对你,别傻了;又有一种声音在告诉我,坚持对别人好,你会得到回报的。
4 就是这两个天使和魔鬼在扰乱我的思绪。的确,我以前就在听着魔鬼的话,对别人冷言冷语,即使大家觉得我很亲切,但我内心的空虚又有谁能看到呢。面对朋友的背叛,说出了我所有的秘密,
我当时就觉得任何人都不能相信,只能靠自己,于是我对友情这个词非常排斥。我一步一步走向绝望的深渊和谷底。
5 直到我上了初中,认识了我生命中最重要的两个人--------刘京兰、王炜。
6 初来学校,就让我感到害怕,因为这里的一切我是那么的陌生,在这里我一个人也不认识,要想和新同学建立起良好的关系,不是件容易事。刘京兰我最先认识的,刚刚开始我们不怎么说话,而我也不经常理她,但是慢慢地,我觉得她和我以前认识的人不一样,以前认识的人,她们虚荣,总觉得自己很高贵,很了不起,我觉得她们特假。但刘京兰可和她们不一样,有人问我为什么和刘京兰这么好,我却说不出来,就觉得从心里喜欢她,想和她成为朋友,经过岁月的打磨,我们很快就成了无话不谈的朋友,我把我的心里话告诉她。她把她的心里话告诉我,就这样我们在一起相处了一年多,到了初二刘京兰要转学,这个消息来得太突然了,我
5
从知道消息的那天起,直到她走的前一天,我写了一封信给她,偷偷地放在了她的书包里50px” width=“450px”
alt=“人变的作文同学” title=“人变的作文同学”/>
,她走的第三天,我给她打了一个电话,我哭了。她的声音也像要哭了似的,我们赶快打住,挂下电话,我是哭得稀里哗啦的。
7 不久,有一个人也像刘京兰一样,和我建立起比刘京兰还要好的关系,我嘴边总是叫出一个人的名字,就是王炜。
8 王炜对朋友比我、比刘京兰、比任何一个人对朋友还用心,拿出自己百分之一百二的心,来帮助我,甚至在我心中王炜已经代替了刘京兰的位置。慢慢地,我觉得我和以前有很大的不同。但这样的日子并不长远,突然有一天,王炜有些刻意的回避我,我问他为,她又说没事。知道别的同学告诉我她也要转学了,我才知道。虽然我和她相处的时间没有和刘京兰相处的时间长,但我比刘京兰走的时候还受不了。我觉得天要塌了一样,因为这个,我和王炜的关系到了一发不可收拾的地步,就因为她
要走,我不想让她走,但我也知道,这一切不是我能改变的,刘京兰已经走了,我不想再让这个朋友在走了。
9 这是命运安排的吗,上天让我自己在没有任何人的帮助下,交到朋友。而不是靠别人来帮助。 10我抱着这要的心理,去找王炜,我看得出来她心里也难受,我只好不再紧
6
紧相逼,问她究竟为什么不告诉我,她要走。于是,我们俩就像以前,像什么事都没有发生一样,一起度过我们在一起的最后时光。
11友谊,是一盏灯,照亮我心中的黑暗;友谊,是一个巨大无比的箱子,收获快乐,也分享快乐,刘京兰就像这盏灯,王炜就像那个箱子。今后,我也会更加珍惜那来之不易的友情。
作者:
7
作文九:《街景变了,看书的人变了,一间87年的书店未曾改变 | 阅读时差》1200字
对于世界各地的书痴们来说,纽约曼哈顿区的Strand书店都是可以朝拜的圣地。这间成立于1927年的书店几次易址、翻修,至今仍是纽约最受欢迎的书店。或许街景变了,看书的人变了,但是有一间经营87年的书店存在,总会让人相信书籍的力量。
1927年,Ben Bass在纽约第四大道建立了Strand书店。这间以伦敦著名出版街道名字命名的书店,如今已是同一时期48间书店的唯一幸存者。
书店成立一年后,Ben Bass的儿子Fred出生。Fred回忆说小的时候总是跟着父亲坐地铁跑遍曼哈顿区寻觅好书,这样的习惯坚持了半个多世纪,虽然现在多数时候并不是乘坐地铁。
对于Fred来说,纽约永远是一座充满机遇的城市,大学、图书馆、华尔街,所有的受教育人群都渴望书籍的魅力。“你很难想象在70年代,我们会将大把的现金藏在书店里,因为天黑之后将一大笔营业额存进银行是件很危险的事儿。”
如今的Strand总店共分两层,每层有数百平方米,拥有超过250万册图书。它是纽约最大的二手书店,你能够只花一美元就买到一本好书。
一美元图书系列
而购买二手书最大的魅力或许在于你能够有机会读到书中的笔记、夹着的便条,你会想知道1951年4月Lionel在使用打字机时的心情,或者Jenny的情人节是否愉快。
二手书中的信件和便签
Strand同时也是纽约最大的珍品书店,在铺有1901年木地板的小阁楼里,你能看到留有爱因斯坦笔迹的《我的世界观》(The World as I See It)、戴安娜王妃签名的服饰收藏集、1632年珍藏版的《莎士比亚戏剧集》……所有泛黄的书页都保留着那个年代的故事。
为了应对电子图书的冲击,Strand书店不断拓展新的业务。詹姆斯·弗兰科、帕蒂·史密斯都曾参与书店的落地活动,15%的营业额来自带着标签的T恤、明信片、笔记本、布袋。
你可以说这是现代社会的书店转型,也可以说这是为了保留纸质书做出的抗争。毕竟,在所有的消费产品上,总能看到Fred喜欢的句子。
附:Strand书店2014年度精选图书
10:04 - Ben Lerner
Citizen - Claudia Rankine
This Changes Everything - Naomi Klein
All The Light We Cannot See - Anthony Doerr
Rome - Dorothea Lasky
Redeployment - Phil Klay
Men Explain Things to Me - Rebecca Solnit
More Curious - Sean Wilsey
Can''t and Won''t - Lydia Davis
Motherland Fatherland Homelandsexuals - Patricia Lockwood
Praying Drunk - Kyle Minor
作文十:《收集了一些关于U-BOOT的文章(zt)》19800字
简单说说U-boot的修改
简单说说U-boot的修改
uboot是一个通用的免费开放源码的boot程序,支持很多的处理器。
以下是现在网上下载一个u-boot-1.1.1版本,用于at91rm9200系统的修改的例子。最后在redhat8.0上,用gcc2.95编译通过。
在网上下载了uboot-1.1.1版本。要用于自己的at91rm9200的系统,这个系统的情况是:
SDRAM: 32Mbytes NCS1
FLASH: 8Mbytes NCS0
涉及到的文件有四个:
mon.h
flash.c
flash.h
”./board/at91rm9200dk/config.mk”
以下简单的说说。
一、首先读读uboot自带的readme文件,了解了一个大概。
二、看看mon.h,这个文件定义了一些基本的东西,并包含了一些必要的头文件。再看看flash.h,这个文件里面定义了flash_info_t为一个struct。包含了flash的一些属性定义。并且定义了所有的flash的属性,其中,AMD的有:AMD_ID_LV320B,定义为“#define AMD_ID_LV320B 0x22F922F9”。
三、对于“./borad/at91rm9200dk/flash.c”的修改,有以下的方面:
“void flash_identification(flash_info_t *info)”这个函数的目的是确认flash的型号。注意的是,这个函数里面有一些宏定义,直接读写了flash。并获得ID号。
四、修改:”./board/at91rm9200dk/config.mk”为
TEXT_BASE=0x21f80000 为TEXT_BASE=0x21f00000 (当然,你应该根据自己的板子来修改,和一级boot的定义的一致即可)。
五、再修改”./include/configs/at91rm9200dk.h”为
修改flash和SDRAM的大小。
六、另外一个要修改的文件是:
./borad/at91rm9200dk/flash.c。这个文件修改的部分比较的多。
1. 首先是OrgDef的定义,加上目前的flash。
2. 接下来,修改”#define FLASH_BANK_SIZE 0x200000”为自己flash的容量
3. 在修改函数flash_identification(flash_info_t * info)里面的打印信息,这部分将在u-boot启动的时候显示。
4. 然后修改函数flash_init(void)里面对一些变量的赋值。
5. 最后修改的是函数flash_print_info(flash_info_t * info)里面实际打印的函数信息。
6. 还有一个函数需要修改,就是:“flash_erase”,这个函数要检测先前知道的flash类型是否匹配,否则,直接就返回了。把这里给注释掉。
七、接下来看看SDRAM的修改。
这个里面对于“SIZE”的定义都是基于字节计算的。
只要修改”./include/configs/at91rm9200dk.h”里面的
“#define PHYS_SDRAM_SIZE 0X200000”就可以了。注意,SIZE是以字节为单位的。
八、还有一个地方要注意
就是按照目前的设定,一级boot把u_boot加载到了SDRAM的空间为:21F00000 -> 21F16B10,这恰好是SDRAM的高端部分。另外,BSS为21F1AE34。
九、编译后,可以写入flash了。
1. 压缩这个u-boot.bin
“gzip –c u-boot.bin > u-boot.gz”
压缩后的文件大小为:
43Kbytes
2. 接着把boot.bin和u-boot.gz烧到flash里面去。
Boot.bin大约11kBytes,在flash的0x1000 0000 ~ 0x1000 3fff
免费参加,名额有限!2005DVTF;MP3 U盘礼物...
zlei 发表于 2005-1-16 12:31 ARM 论坛 ←返回版面
U-Boot 在44B0X 开发板上的移植以及代码分析(ZT)
armboot的原理
1、BIOS的源码,其作用是初始化硬件,并COPY Boot到SDRAM中
2、在SDRAM中运行BOOT达到在线升级的目的。
3、此源代码与硬件无关,在44b0x上测试通过
4、串口通讯协议自己制定,很好理解。在线升级很快
5、目前只支持SST39LVF160,可以自己修改成相信的NOR FLASH
U-Boot 在44B0X 开发板上的移植以及代码分析
1. u-boot 介绍
u-boot是一个open source 的bootloader,目前版本是0.4.0。u-boot 是在ppcboot 以及armboot的基础上发展而来,虽然宣称是0.4.0版本,却相当的成熟和稳定,已经在许多嵌入式系统开发过程中被采用。由于其开发源代码,其支持的开发板众多。唯一遗憾的是并不支持我们现在学习所用samsung 44B0X 的开发板。
为什么我们需要u-boot?显然可以将ucLinux 直接烧入flash,从而不需要额外的
引导装载程序(bootloader)。但是从软件升级的角度以及程序修补的来说,软件的自
动更新非常重要。事实上,引导装载程序(bootloader)的用途不仅如此,但仅从软件的自动更新的需要就说明我们的开发是必要的。同时,u-boot 移植的过程也是一个对嵌入式系统包括软硬件以及操作系统加深理解的一个过程。
2. u-boot 移植的框架
移植u-boot 到新的开发板上仅需要修改和硬件相关的部分。在代码结构上:
1)在board 目录下创建ev44b0ii 目录,创建ev44b0ii.c以及flash.c,memsetup.S,u-boot.lds等。不需要从零开始,可选择一个相似的目录,直接复制过来,修改文件名以及内容。我在移植u-boot 过程中,选择的是ep7312 目录。由于u-boot 已经包含基于s3c24b0 的开发板目录,作为参考,也可以复制相应的目录。
2) 在cpu 目录下创建arm7tdmi 目录,主要包含start.S,interrupts.c 以及cpu.c,serial.c几个文件。同样不需要从零开始建立文件,直接从arm720t 复制,然后修改相应内容。
3) 在include/configs 目录下添加ev44b0ii.h,在这里放上全局的宏定义等。
4) 找到u-boot 根目录下Makefile 修改加入
ev44b0ii_config : unconfig
@./mkconfig $(@:_config=) arm arm7tdmi ev44b0ii
5) 运行make ev44bii_config,如果没有错误就可以开始硬件相关代码移植的工作
3. u-boot 的体系结构
1) 总体结构
u-boot是一个层次式结构。从上图也可以看出,做移植工作的软件人员应当提供串口驱动(UART Driver),以太网驱动(EthernetDriver),Flash 驱动(Flash 驱动),USB 驱动(USB Driver)。目前,通过USB口下载程序显得不是十分必要,所以暂时没有移植USB 驱动。驱动层之上是u-boot 的应用,mand通过串口提供人机界面。我们可以使用一些命令做一些常用的工作,比如内存查看命令md。
Kermit 应用主要用来支持使用串口通过超级终端下载应用程序。TFTP 则是通过网络方式来下载应用程序,例如uclinux 操作系统。
2) 内存分布
在flashrom 中内存分布图ev44b0ii 的flash 大小2M(8bits),现在将0-40000 共256k 作为u-boot的存储空间。由于u-boot 中有一些环境变量,例如ip 地址,引导文件名等,可在命令行通过setenv 配置好,通过saveenv保存在40000-50000(共64k)这段空间里。如果存在保存好的环境变量,u-boot引导将直接使用这些环境变量。正如从代码分析中可以看到,我们会把flash 引导代码搬移到DRAM 中运行。下图给出u-boot的代码在DRAM中的位置。引导代码u-boot 将从0x0000 0000 处搬移到0x0C700000 处。特别注意的由于ev44b0iiuclinux 中断向量程序地址在0x0c00 0000 处,所以不能将程序下载到0x0c00 0000 出,通常下载到0x0c08 0000处。
4. start.S 代码结构
1) 定义入口
一个可执行的Image 必须有一个入口点并且只能有一个唯一的全局入口,通常这个入口放在Rom(flash)的0x0 地址。例如start.S 中的
.globl _start
_start:
值得注意的是你必须告诉编译器知道这个入口,这个工作主要是修改连接器脚本文件(lds)。
2) 设置异常向量(Exception Vector)
异常向量表,也可称为中断向量表,必须是从0地址开始,连续的存放。如下面的就包括了复位(reset),未定义处理(undef),软件中断(SWI),预去指令错误(Pabort),数据错误(Dabort),保留,以及IRQ,FIQ 等。注意这里的值必须与uclinux 的vector_base 一致。这就是说如果uclinux中vector_base(include/armnommu/proc-armv/system.h)定义为0x0c000000,则HandleUndef 应该在
0x0c00 0004。
b reset //for debug
ldr pc,=HandleUndef
ldr pc,=HandleSWI
ldr pc,=HandlePabort
ldr pc,=HandleDabort
b .
ldr pc,=HandleIRQ
ldr pc,=HandleFIQ
ldr pc,=HandleEINT0 /*mGA H/W interrupt vector table*/
ldr pc,=HandleEINT1
ldr pc,=HandleEINT2
ldr pc,=HandleEINT3
ldr pc,=HandleEINT4567
ldr pc,=HandleTICK /*mGA*/
b .
b .
ldr pc,=HandleZDMA0 /*mGB*/
ldr pc,=HandleZDMA1
ldr pc,=HandleBDMA0
ldr pc,=HandleBDMA1
ldr pc,=HandleWDT
ldr pc,=HandleUERR01 /*mGB*/
b .
b .
ldr pc,=HandleTIMER0 /*mGC*/
ldr pc,=HandleTIMER1
ldr pc,=HandleTIMER2
ldr pc,=HandleTIMER3
ldr pc,=HandleTIMER4
ldr pc,=HandleTIMER5 /*mGC*/
b .
b .
ldr pc,=HandleURXD0 /*mGD*/
ldr pc,=HandleURXD1
ldr pc,=HandleIIC
ldr pc,=HandleSIO
ldr pc,=HandleUTXD0
ldr pc,=HandleUTXD1 /*mGD*/
b .
b .
ldr pc,=HandleRTC /*mGKA*/
b .
b .
b .
b .
b . /*mGKA*/
b .
b .
ldr pc,=HandleADC /*mGKB*/
b .
b .
b .
b .
b . /*mGKB*/
b .
b .
ldr pc,=EnterPWDN
作为对照:请看以上标记的值:
.equ HandleReset, 0xc000000
.equ HandleUndef,0xc000004
.equ HandleSWI, 0xc000008
.equ HandlePabort, 0xc00000c
.equ HandleDabort, 0xc000010
.equ HandleReserved, 0xc000014
.equ HandleIRQ, 0xc000018
.equ HandleFIQ, 0xc00001c
/*the value is different with an address you think it may be.
*IntVectorTable */
.equ HandleADC, 0xc000020
.equ HandleRTC, 0xc000024
.equ HandleUTXD1, 0xc000028
.equ HandleUTXD0, 0xc00002c
.equ HandleSIO, 0xc000030
.equ HandleIIC, 0xc000034
.equ HandleURXD1, 0xc000038
.equ HandleURXD0, 0xc00003c
.equ HandleTIMER5, 0xc000040
.equ HandleTIMER4, 0xc000044
.equ HandleTIMER3, 0xc000048
.equ HandleTIMER2, 0xc00004c
.equ HandleTIMER1, 0xc000050
.equ HandleTIMER0, 0xc000054
.equ HandleUERR01, 0xc000058
.equ HandleWDT, 0xc00005c
.equ HandleBDMA1, 0xc000060
.equ HandleBDMA0, 0xc000064
.equ HandleZDMA1, 0xc000068
.equ HandleZDMA0, 0xc00006c
.equ HandleTICK, 0xc000070
.equ HandleEINT4567, 0xc000074
.equ HandleEINT3, 0xc000078
.equ HandleEINT2, 0xc00007c
.equ HandleEINT1, 0xc000080
.equ HandleEINT0, 0xc000084
3) 初始化CPU 相关的pll,clock,中断控制寄存器
依次为关闭watch dog timer,关闭中断,设置LockTime,PLL(phase lock loop),以及时钟。
这些值(除了LOCKTIME)都可从Samsung 44b0 的手册中查到。
ldr r0,WTCON //watch dog disable
ldr r1,=0x0
str r1,[r0]
ldr r0,INTMSK
ldr r1,MASKALL //all interrupt disable
str r1,[r0]
/*****************************************************
* Set clock control registers *
*****************************************************/
ldr r0,LOCKTIME
ldr r1,=800 // count = t_lock * Fin (t_lock=200us, Fin=4MHz) = 800
str r1,[r0]
ldr r0,PLLCON /*temporary setting of PLL*/
ldr r1,PLLCON_DAT /*Fin=10MHz,Fout=40MHz or 60MHz*/
str r1,[r0]
ldr r0,CLKCON
ldr r1,=0x7ff8 //All unit block CLK enable
str r1,[r0]
4) 初始化内存控制器
内存控制器,主要通过设置13 个从1c80000 开始的寄存器来设置,包括总线宽度,
8 个内存bank,bank 大小,sclk,以及两个bank mode。
/*****************************************************
* Set memory control registers *
*****************************************************/
memsetup:
adr r0,SMRDATA
ldmia r0,{r1-r13}
ldr r0,=0x01c80000 //BWSCON Address
stmia r0,{r1-r13}
5) 将rom 中的程序复制到RAM 中
首先利用PC 取得bootloader 在flash 的起始地址,再通过标号之差计算出这个程序代
码的大小。这些标号,编译器会在连接(link)的时候生成正确的分布的值。取得正
确信息后,通过寄存器(r3 到r10)做为复制的中间媒介,将代码复制到RAM 中。
relocate:
/*
* relocate armboot to RAM
*/
adr r0, _start /* r0 baudrate) + 0.5) -1)计算得出。这可以在手册中查到。其他的函数包括发送,接收。这个时候没有中断,是通过循环等待来判断是否动作完成。
例如,接收函数:
while(!(rUTRSTAT0 & 0x1)); //Receive data read
return RdURXH0();
2. 时钟部分
实现了延时函数udelay。
这里的get_timer 由于没有使用中断,是使用全局变量来累加的。
3. flash 部分
flash 作为内存的一部分,读肯定没有问题,关键是flash 的写部分。
Flash 的写必须先擦除,然后再写。
unsigned long flash_init (void)
{
int i;
u16 manId,devId;
//first we init it as unknown,even if you forget assign it below,it‘‘s not a problem
for (i=0; i = CFG_FLASH_BASE
//onitor protection ON by default
flash_protect(FLAG_PROTECT_SET,
CFG_MONITOR_BASE,
CFG_MONITOR_BASE+monitor_flash_len-1,
&flash_info[0]);
#endif
*/
flash_info[0].size =PHYS_FLASH_SIZE;
return (PHYS_FLASH_SIZE);
}
flash_init 完成初始化部分,这里的主要目的是检验flash 的型号是否正确。
int flash_erase (flash_info_t *info, int s_first, int s_last)
{
volatile unsigned char *addr = (volatile unsigned char *)(info->start[0]);
int flag, prot, sect, l_sect;
//ulong start, now, last;
u32 targetAddr;
u32 targetSize;
/*zyy note:It is required and can‘‘t be omitted*/
rNCACHBE0=( (0x2000000>>12)>12); //flash area(Bank0) must be non-cachable
area.
rSYSCFG=rSYSCFG & (~0x8); //write buffer has to be off for proper timing.
if ((s_first s_last)) {
if (info->flash_id == FLASH_UNKNOWN) {
printf ("- missingn");
} else {
printf ("- no sectors to erasen");
}
return 1;
}
if ((info->flash_id == FLASH_UNKNOWN) ||
(info->flash_id > FLASH_AMD_COMP)) {
printf ("Can‘‘t erase unknown flash type - abortedn");
return 1;
}
prot = 0;
for (sect=s_first; sectprotect[sect]) {
prot++;
}
}
if (prot) {
printf ("- Warning: %d protected sectors will not be erased!n",
prot);
} else {
printf ("n");
}
l_sect = -1;
/* Disable interrupts which might cause a timeout here */
flag = disable_interrupts();
/* Start erase on unprotected sectors */
for (sect = s_first; sectprotect[sect] == 0) {/* not protected */
targetAddr=0x10000*sect;
if(targetAddr> 16) & 0xffff;
low=swap_16(low);
high=swap_16(high);
tempPt=(volatile u16 *)dest;
_WR(0x555,0xaa);
_WR(0x2aa,0x55);
_WR(0x555,0xa0);
*tempPt=high;
_WAIT();
_WR(0x555,0xaa);
_WR(0x2aa,0x55);
_WR(0x555,0xa0);
*(tempPt+1)=low;
_WAIT();
return 0;
}
wirte_word 则想flash 里面写入unsigned long 类型的data,因为flash 一次只能写入16bits,所以这里分两次写入。
免费参加,名额有限!2005DVTF;MP3 U盘礼物...
zlei 发表于 2005-1-16 12:33 ARM 论坛 ←返回版面
MPC8xx的U-Boot移植体会(ZT)
BOOTLOADER(引导装载器),是用于初始化目标板硬件,给嵌入式操作系统提供板上硬件资源信息,并进一步装载、引导嵌入式操作系统运行的固件。在嵌入式系统开发过程中,很多情况都会涉及底层BOOT LOADER的移植问题,即使在有些已有BOOTLOADER的参考开发板上也存在这种可能。概括来说,如下情况会考虑进行BOOT LOADER的移植工作:
A. 在自主设计的目标板上,用于引导嵌入式操作系统及其应用;
B. 在厂家未提供BOOT LOADER源码的参考板上,遇有如下情形之一:
a. 在实际应用中需要添加或修改一些功能;
b. 为了给自行设计主板移植BOOT LOADER提供参考,先在参考板上进行移植以积累经验;
另外,从嵌入式系统实际开发角度讲,嵌入式操作系统的引导、配置甚至应用程序的运行状况都和BOOT LOADER有一定的关联,可以说,掌握BOOT LOADER移植是顺利进行嵌入式系统开发的重要利器。
与常见的嵌入式操作系统板级支持包BSP相比,BOOT LOADER与底层硬件更为相关,即每个不同配置的目标板基本都有不同的BOOTLOADER。因为BOOT LOADER往往更依据量体裁衣、定身制作的原则,以满足要求的最小化代码存放在启动ROM或FLASH中。
诚然,自行编写BOOT LOADER未尝不可,但从可利用的资源和实际项目开发考虑,采用移植已有的BOOT LOADER源码来解决这一问题更符合大多数项目开发的要求。
1 U-Boot简介
U-Boot,全称Universal BootLoader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS,LynxOS嵌入式操作系统。其目前要支持的目标操作系统是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux,SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX,RTEMS,ARTOS。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。其它系列的处理器和操作系统基本是在2002年11月PPCBOOT改名为U-Boot后逐步扩充的。从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工程中心WolfgangDenk[以下简称W.D]本人精湛专业水平和持着不懈的努力。当前,U-Boot项目正在他的领军之下,众多有志于开放源码BOOTLOADER移植工作的嵌入式开发人员正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌入式操作系统的装载与引导。
选择U-Boot的理由:
① 开放源码;
② 支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS;
③ 支持多个处理器系列,如PowerPC、ARM、x86、MIPS、XScale;
④ 较高的可靠性和稳定性;
④ 较高的可靠性和稳定性;
⑤ 高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等;
⑥ 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等;
⑦ 较为丰富的开发调试文档与强大的网络技术支持;
2 U-Boot主要目录结构
- board 目标板相关文件,主要包含SDRAM、FLASH驱动;
- mon 独立于处理器体系结构的通用代码,如内存大小探测与故障检测;
- cpu 与处理器相关的文件。如mpc8xx子目录下含串口、网口、LCD驱动及中断初始化等文件;
- driver 通用设备驱动,如CFI FLASH驱动(目前对INTEL FLASH支持较好)
- doc U-Boot的说明文档;
- examples可在U-Boot下运行的示例程序;如hello_world.c,timer.c;
- include U-Boot头文件;尤其configs子目录下与目标板相关的配置头文件是移植过程中经常要修改的文件;
- lib_xxx 处理器体系相关的文件,如lib_ppc, lib_arm目录分别包含与PowerPC、ARM体系结构相关的文件;
- net 与网络功能相关的文件目录,如bootp,nfs,tftp;
- post 上电自检文件目录。尚有待于进一步完善;
- rtc RTC驱动程序;
- tools 用于创建U-Boot S-RECORD和BIN镜像文件的工具;
3 U-Boot支持的主要功能
U-Boot可支持的主要功能列表
系统引导 支持NFS挂载、RAMDISK(压缩或非压缩)形式的根文件系统
支持NFS挂载、从FLASH中引导压缩或非压缩系统内核;
基本辅助功能 强大的操作系统接口功能;可灵活设置、传递多个关键参数给操作系统,适合系统在不同开发阶段的调试要求与产品发布,尤对Linux支持最为强劲;
支持目标板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;
CRC32校验,可校验FLASH中内核、RAMDISK镜像文件是否完好;
设备驱动 串口、SDRAM、FLASH、以太网、LCD、NVRAM、EEPROM、键盘、USB、PCMCIA、PCI、RTC等驱动支持;
上电自检功能 SDRAM、FLASH大小自动检测;SDRAM故障检测;CPU型号;
特殊功能 XIP内核引导;
4 U-Boot移植过程
① 获得发布的最新版本U-Boot源码,与Linux内核源码类似,也是 bzip2的压缩格式。可从U-Boot的官方网站://sourceforge.net/projects/U-Boot上获得;
② 阅读相关文档,主要是U-Boot源码根目录下的README文档和U-Boot官方网站的DULG(The DENX U-Boot and Linux Guide)文档://.denx.de/twiki/bin/view/DULG/Manual。尤其是DULG文档,从如何安装建立交叉开发环境和解决U-Boot移植中常见问题都一一给出详尽的说明;
③ 订阅U-Boot用户邮件列表://lists.sourceforge.net/lists/listinfo/u-boot-users。在移植U-Boot过程中遇有问题,在参考相关文档和搜索U-Boot-User邮件档案库://sourceforge.net/mailarchive/forum.php?forum_id=12898仍不能解决的情况下,第一时间提交所遇到的这些问题,众多热心的U-Boot开发人员会乐于迅速排查问题,而且很有可能,W.D本人会直接参与指导;
④ 在建立的开发环境下进行移植工作。绝大多数的开发环境是交叉开发环境。在这方面,DENX 和MontaVista均提供了完整的开发工具集;
⑤在目标板与开发主机间接入硬件调试器。这是进行U-Boot移植应当具备且非常关键的调试工具。因为在整个U-Boot的移植工作中,尤其是初始阶段,硬件调试器是我们了解目标板真实运行状态的唯一途径。在这方面,W.D本人和众多嵌入式开发人员倾向于使用BDI2000。一方面,其价格不如ICE调试器昂贵,同时其可靠性高,功能强大,完全能胜任移植和调试U-Boot。另外,网上也有不少关于BDI2000调试方面的参考文档。
⑥如果在参考开发板上移植U-Boot,可能需要移除目标板上已有的BOOT LOADER。可以根据板上BOOTLOADER的说明文档,先着手解决在移除当前BOOT LOADER的情况下,如何进行恢复。以便今后在需要场合能重新装入原先的BOOTLOADER。
5 U-Boot移植方法
当前,对于U-Boot的移植方法,大致分为两种。一种是先用BDI2000创建目标板初始运行环境,将U-Boot镜像文件u-boot.bin下载到目标板RAM中的指定位置,然后,用BDI2000进行跟踪调试。其好处是不用将U-Boot镜像文件烧写到FLASH中去。但弊端在于对移植开发人员的移植调试技能要求较高,BDI2000的配置文件较为复杂。另外一种方法是用BDI2000先将U-Boot镜像文件烧写到FLASH中去,然后利用GDB和BDI2000进行调试。这种方法所用BDI2000的配置文件较为简单,调试过程与U-Boot移植后运行过程相吻合,即U-Boot先从FLASH中运行,再重载至RAM中相应位置,并从那里正式投入运行。唯一感到有些麻烦的就是需要不断烧写FLASH。但考虑到FLASH常规擦写次数基本为10万次左右,作为移植U-Boot,不会占用太多的次数,应该不会为FLASH烧写有什么担忧。同时,W. D本人也极力推荐使用后一种方法。笔者建议,除非U-Boot移植资深人士或有强有力的技术支持,建议采用第二种移植方法。
6 U-Boot移植主要修改的文件
从移植U-Boot最小要求-U-Boot能正常启动的角度出发,主要考虑修改如下文件:
① .h头文件,如include/configs/RPXlite.h。可以是U-Boot源码中已有的目标板头文件,也可以是新命名的配置头文件;大多数的寄存器参数都是在这一文件中设置完成的;
② .c文件,如board/RPXlite/RPXlite.c。它是SDRAM的驱动程序,主要完成SDRAM的UPM表设置,上电初始化。
③ FLASH的驱动程序,如board/RPXlite/flash.c,或mon/cfi_flash.c。可在参考已有FLASH驱动的基础上,结合目标板FLASH数据手册,进行适当修改;
④ 串口驱动,如修改cpu/mpc8xx/serial.c串口收发器芯片使能部分。
7 U-Boot移植要点
①BDI2000的配置文件。如果采用第二种移植方法,即先烧入FLASH的方法,配置项只需很少几个,就可以进行U-Boot的烧写与调试了。对PPC8xx系列的主板,可参考DULG文档中TQM8xx的配置文件进行相应的修改。下面,笔者以美国Embedded Planet公司的RPXliteDW板为例,给出在嵌入式Linux交叉开发环境下的BDI2000参考配置文件以作参考:
; bdiGDB configuration file for RPXlite DW or LITE_DW
; --------------------------------------------
[INIT]
; init core register
WSPR 149 0x2002000F ;DER : set debug enable register
; WSPR 149 0x2006000F ;DER : enable SYSIE for BDI flash program
WSPR 638 0xFA200000 ;IMMR : internal memory at 0xFA200000
WM32 0xFA200004 0xFFFFFF89 ;SYPCR
[TARGET]
CPUCLOCK 40000000 ;the CPU clock rate after processing the init list
BDIMODE AGENT ;the BDI working mode (LOADONLY | AGENT)
BREAKMODE HARD ;SOFT or HARD, HARD uses PPC hardware breakpoints
[HOST]
IP 173.60.120.5
FILE uImage.litedw
FORMAT BIN
LOAD MANUAL ;load code MANUAL or AUTO after reset
DEBUGPORT 2001
START 0x0100
[FLASH]
CHIPTYPE AM29BX8 ;;Flash type (AM29F | AM29BX8 | AM29BX16 | I28BX8 | I28BX16)
CHIPSIZE 0x400000 ;;The size of one flash chip in bytes
BUSWIDTH 32 ;The width of the flash memory bus in bits (8 | 16 | 32)
WORKSPACE 0xFA202000 ; RAM buffer for fast flash programming
FILE u-boot.bin ;The file to program
FORMAT BIN 0x00000000
ERASE 0x00000000 BLOCK
ERASE 0x00008000 BLOCK
ERASE 0x00010000 BLOCK
ERASE 0x00018000 BLOCK
[REGS]
DMM1 0xFA200000
FILE reg823.def
②U-Boot移植参考板。这是进行U-Boot移植首先要明确的。可以根据目标板上CPU、FLASH、SDRAM的情况,以尽可能相一致为原则,先找出一个与所移植目标板为同一个或同一系列处理器的U-Boot支持板为移植参考板。如RPXliteDW板可选择U-Boot源码中RPXlite板作为U-Boot移植参考板。对U-Boot移植新手,建议依照循序渐进的原则,目标板文件名暂时先用移植参考板的名称,在逐步熟悉U-Boot移植基础上,再考虑给目标板重新命名。在实际移植过程中,可用Linux命令查找移植参考板的特定代码,如grep –r RPXlite ./可确定出在U-Boot中与RPXlite板有关的代码,依此对照目标板实际进行屏蔽或修改。同时应不局限于移植参考板中的代码,要广泛借鉴U-Boot中已有的代码更好地实现一些具体的功能。
③U-Boot烧写地址。不同目标板,对U-Boot在FLASH中存放地址要求不尽相同。事实上,这是由处理器中断复位向量来决定的,与主板硬件相关,对MPC8xx主板来讲,就是由硬件配置字(HRCW)决定的。也就是说,U-Boot烧写具体位置是由硬件决定的,而不是程序设计来选择的。程序中相应U-Boot起始地址必须与硬件所确定的硬件复位向量相吻合;如RPXlite DW板的中断复位向量设置为0x00000100。因此, U-Boot的BIN镜像文件必须烧写到FLASH的起始位置。事实上,大多数的PPC系列的处理器中断复位向量是0x00000100和0xfff00100。这也是一般所说的高位启动和低位启动的BOOTLOADER所在位置。可通过修改U-Boot源码.h头文件中CFG_MONITOR_BASE和board//config.mk中的TEXT_BASE的设置来与硬件配置相对应。
④CPU寄存器参数设置。根据处理器系列、类型不同,寄存器名称与作用有一定差别。必须根据目标板的实际,进行合理配置。一个较为可行和有效的方法,就是借鉴参考移植板的配置,再根据目标板实际,进行合理修改。这是一个较费功夫和考验耐力的过程,需要仔细对照处理器各寄存器定义、参考设置、目标板实际作出选择并不断测试。MPC8xx处理器较为关键的寄存器设置为SIUMCR、PLPRCR、SCCR、BRx、ORx。
⑤串口调试。能从串口输出信息,即使是乱码,也可以说U-Boot移植取得了实质性突破。依据笔者调试经历,串口是否有输出,除了与串口驱动相关外,还与FLASH相关的寄存器设置有关。因为U-Boot是从FLASH中被引导启动的,如果FLASH设置不正确,U-Boot代码读取和执行就会出现一些问题。因此,还需要就FLASH的相关寄存器设置进行一些参数调试。同时,要注意串口收发芯片相关引脚工作波形。依据笔者调试情况,如果串口无输出或出现乱码,一种可能就是该芯片损坏或工作不正常。
⑥ 与启动 FLASH相关的寄存器BR0、OR0的参数设置。应根据目标板FLASH的数据手册与BR0和OR0的相关位含义进行合理设置。这不仅关系到FLASH能否正常工作,而且与串口调试有直接的关联。
⑦关于CPLD电路。目标板上是否有CPLD电路丝毫不会影响U-Boot的移植与嵌入式操作系统的正常运行。事实上,CPLD电路是一个集中将板上电路的一些逻辑关系可编程设置的一种实现方法。其本身所起的作用就是实现一些目标板所需的脉冲信号和电路逻辑,其功能完全可以用一些逻辑电路与CPU口线来实现。
⑧SDRAM的驱动。串口能输出以后,U-Boot移植是否顺利基本取决于SDRAM的驱动是否正确。与串口调试相比,这部分工作更为核心,难度更大。MPC8xx目标板SDRAM驱动涉及三部分。一是相关寄存器的设置;二是UPM表;三是SDRAM上电初始化过程。任何一部分有问题,都会影响U-Boot、嵌入式操作系统甚至应用程序的稳定、可靠运行。所以说,SDRAM的驱动不仅关系到U-Boot本身能否正常运行,而且还与后续部分相关,是相当关键的部分。
⑨补充功能的添加。在获得一个能工作的U-Boot后,就可以根据目标板和实际开发需要,添加一些其它功能支持。如以太网、LCD、NVRAM等。与串口和SDRAM调试相比,在已有基础之上,这些功能添加还是较为容易的。大多只是在参考现有源码的基础上,进行一些修改和配置。
另外,如果在自主设计的主板上移植U-Boot,那么除了考虑上述软件因素以外,还需要排查目标板硬件可能存在的问题。如原理设计、PCB布线、元件好坏。在移植过程中,敏锐判断出故障态是硬件还是软件问题,往往是关系到项目进度甚至移植成败的关键,相应难度会增加许多。
完成一个目标板的移植工作后,可考虑将移植结果以补丁的形式发送到U-Boot用户邮件列表,尤其是一些参考板的移植结果。这是使用GPL代码并遵循GPL条款的体现。可在阅读README相关补丁说明的基础上,添加适当的注释,将自己列入光荣榜(CREDITS)。如果愿意承担所移植板的后续更新工作,可以考虑加入维护人员(MAINTAINERS)开发队伍行列。
诚然,在实际的U-Boot移植中无法避免地会遇到一些难以预料的问题,甚至出现倒退,尤其U-Boot移植新手,更会平添诸多难度。但笔者相信,在逐步熟悉U-Boot移植方法、过程中,随着自身经验的不断积累,加之有众多热衷于开放源码人士的鼎立相助,坚冰终会消融。