django_rfw_4

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django_rfw_4相关的知识,希望对你有一定的参考价值。

参考技术A 为什么用Django rest_Framework框架?
----首先没有Django rest_Framework框架用django也是可以做出来的,只不过它为我们提供一些API常用的功能,比如:(认证,权限,限流,有了这些我们只需要写个类已配置,它就能当都市图用,还能全局配置,如果自己写还得写中间件,写装饰器来实现,通过Django rest_Framework框架,他已经把规则写好,只需要写类,只需实现方法,返回值就可以)实现了一部分功能。

哪些设计比较好?
----单独视图+全局配置 =>Dajngo中间件(importlib/反射)=>动态配置课扩展(短信,邮件,微信等提醒

问答:
版本这个东西哪里用?

为什么要做前后端分离?

django restful 框架
用的时候,只需配置写类就可以,像不像 stark 组件
所有组件都可以有全局和单视图的。

启动代码分析 02

首先从开发板硬件讲起:

思考问题: 开发板上电后,程序是如何启动呢???

这里分 nor flash 启动 和 nand flash 启动

讲解 : 

nand flash 启动:

______________________________________________________________________________________________________________________

由于NAND FLASH是接在NAND FLASH控制器上而不是系统总线上,所以没有在S3C2440A的8个BANK中分配地址空间。如果S3C2440被配置成从Nand Flash启动,在S3C2440上电后,Nand Flash控制器的会自动的把Nand Flash上的前4K数据搬移到内部SRAM中,也就是所谓的”Steppingstone”, 同时把这段片内SRAM映射到nGCS0片选的空间(即0x00000000)。系统会从这个内部SRAM中启动,程序员需要完成的工作,就是把最核心的启动程序放在Nand Flash的前4K中,也就是说,你需要编写一个长度小于4K的引导程序,作用是将主程序拷贝到RAM (一般是SDRAM)中运行。而在Nand Flash方式启动的情况下,系统是”看不到”Nor Flash的,因为Nor Flash也是挂在nGCS0上的,而nGCS0的地址空间已经被占用了。

________________________________________________________________________________________________________________________

1、系统上电后,首先自动判断是否是autoboot模式,如果使用 s3c2410是带有nandflash的,并且被设置成autoboot,从nandflash开始启动.
2、在判断是autoboot模式后,mcu内置的nandflash控制器自动将nandflash的最前面的4k区域(这4k区域存放着 bootloader的最前面4k代码)拷贝到samsung所谓的"steppingstone"里面(steppingstone是在S3C2440 中,实际上是一块4k大小的SRAM,).
3、在拷贝完前4k代码后,nandflash控制器自动将"steppingstone"映射到arm地址空间0x00000000开始的前4k区域.
4、在映射过程完成后.nandflash控制器将pc指针直接指向arm地址空间的0x00000000位置,准备开始执行"steppingstone"上的代码.
5、而"steppingstone"上从nandflash拷贝过来的4k代码,是程序员写的bootloader的前4k代码.这个 bootloader在之前写好,并已经被烧写到nandflash的0x00000000开始的最前面区域..而这"steppingstone"上的 4k代码就是bootloader的前4k代码.
6、在pc指向arm地址空间的0x00000000后,系统就开始执行指令代码.这4k代码的任务是:初始化硬件,设置中断向量表,设置堆栈,然后一个很重要的任务是,将nandflash的最前面区域的bootloader(包含4k启动代码)拷贝到SDRAM中去,bootloader代码的大小是写好bootloader就确定的.然后只需要确定bootloader想映射到SDRAM的起始位置就ok.
7、在完成对nandflash上的bootloader搬移后,找到4k代码的搬移代码最后一个指令的下一个指令在SDRAM的bootloader的地址,然后跳转到该位置,继续执行bootloader的剩余代码(引导系统).
 
 
具体可以看: http://blog.csdn.net/r91987/article/details/7625916   虽然没有图,但是说得很好啊
 
因为代码必须从 地址 0x000000 开始启动,而 nor flash 就是0x000000  但是nand flash 地址确是 0x30000000  行不通,但是我们有个 4KB 的 steping stone(ARM 芯片自己有的)地址是 0x00000,这样可以 
硬件复制前4KB 代码到 stepping stone 再转到 0x30000000 的 SDRAM 中去
 
nor flash 启动,由于 nor flash 可以存放 bios , 但是 可读不可写,但是 bootloader 里面的 RW 段 和 ZI 段 要被写,自然也要进行代码的搬迁工作(参考 杨铸 97页
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
————————————————————————————————————————————————————————————————————————————————————————————————————————————————
 
启动代码详解: 
 
总得来说,裸机开发 启动代码只有 100 多条 汇编指令, 通过启动代码可以近一步熟悉 ARM 汇编指令, 好处是为以后熟练运用 ARM C语言, 汇编语言混合编程以及 uboot的移植打下基础。
那么怎样才算ARM汇编 过关呢???? 只要看得懂启动代码就可以了啊!!!!!!!!!!啊啊啊啊 啊啊 啊 啊啊啊 啊!!!!!!!然后自己会修改就行了!啊啊啊啊啊啊a啊 啊啊啊 啊啊 啊~~  !!!!!!!!!!

以上是关于django_rfw_4的主要内容,如果未能解决你的问题,请参考以下文章

Djangon初识

django目录

Django初识

**crm项目部署**

Yuan先生的博客网址

Django