- 博客(5)
- 资源 (4)
- 收藏
- 关注
转载 使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
在网上看到很多网友在.NET程序中调用Win32 API,或者调用自己的VC DLL里面提供的函数的时候,总是被生成正确的C函数在C#中的正确声明而困扰,而生成C++中结构体在C#中的声明-天,没有什么比这个更让人恶心的事情了。因为:1.如果你的结构体里面包含TCHAR字符串成员的话,需要考虑ANSI和Unicode DLL的情形。2.如果你的结构体里面包含数组成员,需要考虑定长的数组,而不是对应C#数据类型。3.如果你的结构体里面包含...
2020-08-07 16:52:52 141
转载 如何写linux pci设备驱动程序
PCI总线应用领域及其广泛并且令人惊奇。不同的pci设备有不同的需求以及不同的问题。因此,在linux内核中pci层支持就非常重要啦。本文档就是想为驱动程序设计开发人员解决pci处理中的各种问题。0. Pci设备驱动程序的结构现在有两种风格的的pci驱动程序结构:新风格的驱动(即让pci层来做大量设备探测工作并且支持热插拔功能)和旧风格的驱动(即由驱动程序自己探测
2014-01-15 21:16:35 789
转载 e500核在uboot初始化过程中两块地址空间的转换 .
E500核中有两段地址空间,空间0和空间1,cpu指令和数据段使用哪一个空间可以由cpu的MSR寄存器的IS位和DS位做修改。而MMU将物理地址映射到哪个空间中的有效地址取决于MMU MAS1寄存器中的TS位。E500核刚上电时,指令段和数据段都在空间0中,TLB1的Entry0默认设置为映射uboot的以_start_e500开始的4K空间,所有产生的空间0中的地址都由Entry0映射到物理
2013-03-25 13:26:27 625
转载 P2020 (e500核)上电启动及uboot流程 .
系统上电到执行第一条指令前,需要经过配置PLL、Local Bus控制器、LAW、MMU等操作,这些配置完全是由Cpu根据芯片的默认值和芯片外部配置引脚的输入状态自动完成的。如:1) Cpu根据cfg_sys_pll[0:2]的输入状态决定当前CPU的BBC对SYS_CLK的倍频参数;2) Cpu根据cfg_ddr_pll[0:2] 的输入状态决定DDR的时钟频率(DDR2和D
2013-03-25 13:24:26 892
原创 c/c++中程序数据的存储
我想很多人也是糊涂,以下文章写得很好,故全文转来,慢慢体会。程序的内存分配(堆和栈区别)一、预备知识 程序的内存分配一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与
2010-11-08 13:07:00 401
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人