当前位置:  编程技术>移动开发
本页文章导读:
    ▪2012 ARM嵌入式开发施用研讨会杂谈        2012 ARM嵌入式开发应用研讨会杂谈记得以前参加的ARM的研讨会,名称是技术研讨会,不知道为什么现在改名为嵌入式开发应用研讨会了。不过今年演讲的重点就是 ARM DS-5开发工具(还免费发放.........
    ▪ Spring基于HibernateTransactionManager的事物治理        Spring基于HibernateTransactionManager的事物管理Dao:         package com.test.dao;         import com.test.model.Customer;         public interface UserDao {                          public void Add(Cu.........
    ▪ NSMutableArray 成为 _NSCFString       NSMutableArray 变成 _NSCFString @property (nonatomic, retain) NSMutableArray *array; 在代码中 array = xxx; 和 self.array =xxx; 效果是不一样的, 前者没有保存(retain)array对象,所以才出错 对成员变量的引用和赋.........

[1]2012 ARM嵌入式开发施用研讨会杂谈
    来源: 互联网  发布时间: 2014-02-18
2012 ARM嵌入式开发应用研讨会杂谈

记得以前参加的ARM的研讨会,名称是技术研讨会,不知道为什么现在改名为嵌入式开发应用研讨会了。不过今年演讲的重点就是 ARM DS-5开发工具(还免费发放了一本《Linux/Android开发利器 ARM DS-5使用指南》书籍),也许这就是所谓的嵌入式开发应用名称的由来吧。

学编程语言的时候,人们经常说,真正的程序员用C。虽然一直在微软体系打拼,但我个人认为,在嵌入式领域,如果做产品,还是要选择linux体系的技术。

无论是linux还是java语言,ARM体系都是从芯片级别进行支持,这次从开发工具入手,对Linux/Android开发直接支持,更是升到了战略层面。微软技术生态体系中,最为重要的就是得益于开发工具的方便和易用,而linux多年来发展比较缓慢,和开发工具相对难用不无关系。微软通过推出.NET技术的开发工具,一举灭掉了当年的宿敌Borland公司,从此windows平台的开发工具,再无可以挑战其统治地位的对手。但是很多事情是两面的,当你不给别人路走的时候,别人也只能另辟蹊径了,这也是谷歌等其他公司大力发展linux体系的原因。到头来,也许自以为构建的很稳固的王国,被边缘化的更快。

闲言少叙,还是说一下ARM嵌入式开发应用研讨会本身。

ARM技术会,真是人气一年不如一年,今年参展的厂商更少了,也没有什么让人眼前一亮的新技术出现,更没有新产品可展示。微软的嵌入式产品,更是远离了ARM,在后PC,嵌入式为王的时代,妄图以所谓的Win8来打天下,真是有点螳臂挡车了。一个技术王国的兴衰其实和生态系统关系很大,诺基亚之所以死的那么快,这和它没有良性的生态系统不无关系。有了好的生态系统,虽然不一定长治久安,但是绝不会那么快灭亡。

除了讲解ARM DS-5工具,另外最为重要的,就是讲解基于MDK-ARM工具的RTOS系统,除了系统核心,另外还提供了CAN接口库、文件系统、USB Host、USB Device、TCP/IP协议栈和GUI库(如下图)。

以前参加ARM的技术交流会,一直不太明白,ARM提供的这套库,如何适应不同厂家的ARM芯片,不过听了后续所讲的CMSIS - Cortex 微控制器软件接口标准,才有所悟。


从上图中,可以看出主流的Cortex芯片厂商,都已经加入了这个合作计划。

我在以前的文章中就曾经说过,ARM推出Cortex系列的芯片,其志不小。特别是对早已经被绑入其战车的各大芯片厂商,又勒紧了一下枷锁,对ARM最新的内核的架构做了进一步限定,如对SysTick、NVIC和FMSC芯片设计的限定。特别是CMSIS接口的标准推出,简直是卡住了各大芯片厂商的脖子,他们不加入这种计划,难免被边缘化,加入了,难免沦为ARM公司的一个生产车间。

从恩智浦几次的技术演讲,不难看出,这些厂商,在努力的寻找和实现和其它厂商的差异化,就差一点推出自己的软件系统了。

如果ARM公司的这套系统和工具,逐渐降低价格,甚至是开源免费。我就可以收回我开篇所说的“在嵌入式领域,如果做产品,还是要选择linux体系的技术”这句话了。

我们知道,在PC领域,微软+英特尔两大巨头,一软一硬统治PC领域几十年(不过Win8开始支持ARM芯片了,为这种合作模式吹响了丧钟),而在嵌入式领域,特别是ARM7,ARM9,ARM11时代,ARM公司的对芯片公司约束力较少,各家芯片厂商,推出的芯片,差异化非常大,可以说各自为政,所以做软件的很难在嵌入式领域一统江湖(他们不可能,也没有实力,或者是意义对所有的芯片进行底层移植,以前这种移植工作都是芯片厂商完成的)。

而ARM利于自己的优势地位,一步一步再向这个目标靠近。

如果把产品也比着生命,那么芯片就是细胞核了,上面的程序就是基因了。一旦可靠的基因模式确定,也许和地球上的生命一样,嵌入式产品的寒武纪时代已经来临。(有兴趣的朋友,可以看看我以前写的这篇《计算机和生命体畅想曲》文章)

ST厂商在PPT中主要谈了Cortex-M0+相关芯片的技术特色,而恩智浦的调调和前几年没有什么区别,富士通新做的芯片简直就是为变频器专做,这些乏善可陈,就不多说了。

最后值得一提的是赛普拉斯半导体公司推出的PSoC,感觉是介于ARM一般芯片和FPGA芯片之间的一种产品。微感不足的是Cortex核的芯片主频才6M,但是对一些特殊的应用场合,还是蛮实用的(比如需要若干个串口或SPI等接口)。

总体来说,这次会议的规模更小了,参展也移到会议厅了,也许这是受中国经济大环境的影响,期待明年有新的亮点出现。

附:

2010年 ARM技术研讨会杂记

http://blog.csdn.net/yefanqiu/article/details/6033661

2011年ARM技术研讨会杂记

http://blog.csdn.net/yefanqiu/article/details/7029270


 

1楼luomengko昨天 14:59yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy

    
[2] Spring基于HibernateTransactionManager的事物治理
    来源: 互联网  发布时间: 2014-02-18
Spring基于HibernateTransactionManager的事物管理

Dao:

        package com.test.dao;

        import com.test.model.Customer;

        public interface UserDao {
 

                       public void Add(Customer c);
          }

DaoImpl:                 

           package com.test.daoImpl;

             import org.hibernate.HibernateException;
            import org.hibernate.classic.Session;
            import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
            import com.test.dao.UserDao;
            import com.test.model.Customer;

            public class UserDaoImpl extends HibernateDaoSupport  implements UserDao    {
 
                     public void Add(Customer c){
                                   Session session = null;
                                   try {
                                        getHibernateTemplate().save(c);
                                   } catch (HibernateException e) {
                                        // TODO Auto-generated catch block
                                      e.printStackTrace();
                        }
             }
        }

Service:

                package com.test.service;

                import com.test.dao.UserDao;

                public class AddService {
                         private UserDao userDao;

                         public UserDao getUserDao() {
                                   return userDao;
                         }

                          public void setUserDao(UserDao userDao) {
                                  this.userDao = userDao;
                          }
                    }

Test:

                   package com.test.service;

                  import org.springframework.context.support.ClassPathXmlApplicationContext;

                  import com.test.dao.UserDao;
                  import com.test.daoImpl.UserDaoImpl;
                 import com.test.model.Customer;

                 public class AddServiceTest {
                             public static void main(String args[]){
                                              ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
  
                                                UserDao impl = (UserDaoImpl)ctx.getBean("addservice");
  
                                                 Customer c = new Customer();
                                                 c.setName("注释换");
                                                 c.setPassword("zhushihuan");
                                                 impl.Add(c);
  
 }
}

ApplicationContext.xml:

 


    
[3] NSMutableArray 成为 _NSCFString
    来源: 互联网  发布时间: 2014-02-18
NSMutableArray 变成 _NSCFString

@property (nonatomic, retain) NSMutableArray *array;

在代码中 array = xxx;

和 self.array =xxx;

效果是不一样的, 前者没有保存(retain)array对象,所以才出错

对成员变量的引用和赋值一定记得加上self.,万无一失!


但在ARC模式中好像没有错误。。。


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
windows iis7站长之家
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3