首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    一周极客热文:电影中的黑客高手都是这样编程的,一秒高大上,爽!

    你只看到电影中程序员那飞快的指法,却不知道其编译器是一个坑;你看我们现实中程序员的纷纷扰扰,却未看到我们步步为营和流下的汗水,程序员用拼搏为自己代言。 如今,有一个让你变得高端大气上档次的机会,你会错过吗?有个条成功的捷径你会去吗?拥有了它你也可以像电影中的程序员那编程? 程序员想要华丽的变身请猛戳:摸我摸我。 其实你看完了之后那只是一个梦,真实的情况是这样的。点我点我就带你回到现实世界,醒醒吧! 1、 C语言程序员必读的5本书 为什么在程序员中,C语言如此流行呢?这背后有很多原因。 它独立于平台,可以

    09

    uCOSII操作系统移植笔记

    笔记一: 今天粗略的看了一下周立功关于uc/osII在lpc2104上的移植方面的说明,这之中印象最深的应该是irq中断和软中断方面的处理,由于arm芯片的特殊性(拥有7种处理器模式),即每种处理器模式都有自己的堆栈,这样在处理堆栈的时候就会相应的麻烦一些。 在 响应异常时,该移植计划在初始代码里面比在没有操作系统的初始代码多了irq的处理,移植里面的irq处理多了由汇编语言编写的对任务环境的保存,没操作 系统的中的任务环境的保存都是由在产生irq中断是用c语言声明的__irq关键字来完成了,移植中irq中断不能采用__irq关键字,因为c语言不能 保证堆栈结构,而uc/osII必须要保证堆栈结构。除此之外,相对于没操作系统的初始代码,基本上是没有什么改变。 在uc/osII的任务切换 中,采用了arm里面的软中断指令swi来执行,对于非中断性的任务切换(如挂起和等待信号量的时候)uc/osII是采用了宏os_task_sw() 来执行的,然后联系到osctxsw()函数来完成任务切换,而遇到中断情况时在返回是需要任务切换是则采用了osintctxsw()来执行的,在周立 功的移植当中,他把osctxsw()与osintctxsw()合二为一了,统一采用osintctxsw()来实现。之所以这样搞的原因是任务进行切 换的时候,都必须进入软中断的状态,而对于软中断的异常响应代码已经将任务的环境变量进行了保存,从而也不需要像osctxsw()里面规定的那样对将环 境变量进行保存。 这是我看今天看了移植说明后所理解的东西,当然还得细致的对代码进行分析,特别是osintctxsw()代码的分析,虽然移植的代码大体是遵从了uc/osII的编码规范,但对于arm的多种处理器模式移植代码有特别的改变,以实现cpu时间和ram的利用。

    04

    小朋友学C语言(1):安装Codeblocks编程工具

    编译器是将“一种语言(通常为高级语言)”翻译为“另一种语言(通常为低级语言)”的工具。一个现代编译器的主要工作流程:源代码(source code) -->预处理器 (preprocessor) -->编译器 (compiler) -->目标代码 (object code) -->链接器 (linker) -->可执行程序 (executables)。 高级计算机语言便于人类编写、阅读、交流和维护。机器语言是能直接被计算机接解读、运的。编译器将汇编或高级计算机语言源程序(Source program)作为输入,翻译成目标语言(Target language)机器代码的等价程序。源代码一般为高级语言 (High-level language), 如C、C++、Java或汇编语言,而目标语言则是机器语言的目标代码(Object code),有时也称作机器代码(Machine code)。

    04
    领券