Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1316049
  • 博文数量: 548
  • 博客积分: 7597
  • 博客等级: 少将
  • 技术积分: 4224
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-15 13:21
个人简介

嵌入式软件工程师&&太极拳

文章分类

全部博文(548)

文章存档

2014年(10)

2013年(76)

2012年(175)

2011年(287)

分类: LINUX

2011-03-01 00:15:13

----------------------------------------------------------------------------------

fenluoyiman : data and instruction same
hafu :  data and instruct different

ITLB  ICACHE   pc
DTLB  DCACHE  Write Buff str ldr

clean <>  invaildate
clean-> write to memory

invaildate <> delete the entry

permission <> mode

cope
ccla


电容  -gui yu>  电阻  

占空比 一个周期内

cpld  时序转换

VD - RGB
VCLK    
HSYNC
VSYNC

LCD CONTROL  YAO HE JUTI DE LCD  SYNC

LCD CONTROL HAVE A LCDDMA

LCDCON5  set puls


----------------------------------------------------------------------------------------------

peripler use all is physic address

dma atmoic operation have two modes
demand mode     ------req is valid
handshake mode   -------req vailid invalid valid invalid
sw  ----- soft set register to request
hw ----- hard send request

DSP  就是一个强大的
d/a 转换器  .....
audioc dic

l3  control bus
iis  transter data

ac97  can transter data and control signal

iis have host and server
LRCK left right
SCLK
SD

fs: sampling frequency)
fs 采样率  44100 hz
16 bit
32fs = 32*fs

------------------------------------------------------------------------------------------

lld   arp
通过驱动层 连接 mac 和 lld

网卡:
mac
物理层:mii 物理层芯片


可以接65536个ip

cs8900 两种模式
i/o:
memory:
addr.xian connect cs8900 select .   0x19000000 is i/o mode
0x18000000 memory mode

memory control : wait is time sequence;
wait>>>>

Determines SRAM for using UB/LB for bank 5.
0 = Not using UB/LB (The pins are dedicated nWBE[3:0])
1 = Using UB/LB (The pins are dedicated nBE[3:0])
决定是否能用  strd  ldrd strh ldrh


polling  often use in 时据很多,很集中

interrupt  often use in 即时,稀疏

IMEI  手机上网硬件码

CRC=4*8 .
usb 7wei addr

设置网卡就是设置 MAC 行文。
PromiscuousA 设置混杂模式。


----------------------------------------------------------------------------------------------------


调试
一般是程序的执行流是 通过PC在指定的。
在arm中有快 ICE 可以通过ICE来改变  程序执行流, 通过JTAG口来控制ICE, TJAG是种接口标准,
可用通过  use 转 JTAG  时序转换来控制ICE,  在程序中是使用Openocd(这是一个服务程序)来解析命令发送时序.

--------------------------------------------------------------------------------------------------------------------------

boot_loader!

vivi
redboot
blob
u-boot

------------------------------------------------------------------------------------------------


OSS
ESD  是基于oss的守护进程。

ALSA
alsa-lib

socket 返回的就是设备饿节点

socket 通过IP 找找寻、网络设备。

TTL损耗不起只能在板子上传输,远距离 损耗不起。,  差分传输/

有的 内核有mac控制器通过mii与物理层连接。

没有mac控制器就需要 有一个含有mac控制器的网卡。
    
cs8900  读完了变成低  
1514 + 4 CRC

Cs8900 IO / memory模式。
24位决定。
为0x19。。。 为IO模式
0x18。。。 为memory模式。

-------------------------------------------------------------------------------------------------------------
ioremap()  ;映射要4k对齐;
iounmap() ;

TTL  pin悬空状态未定
CMOS  pin悬空时为低]

volatile 防止编译器优化,,,,,,,,,,,,,,,,,,,,
下面优化后可能变为:
   *p = 5;
*p  = 6;
优化后:
*p = 6;


__常为于平台有关。

request_mem_region( addr ,S_$k, name );
release_mem_region( addr, len );

IS_ERR( void *point );
PTR_ERR( void *point );


-----------------------------------------------------------------------------------------------------

1. 明确问题!what how  why  抽象出精髓
2.从精髓中找出思路,懒一下想出好的算法
3.为了编码简单   建立合适的数据结构  权衡需求
4.步步为赢  验证性的给出伪代码:

在这些之前最重要 的是  搭出整个程序的框架   易于代码的测试       易修改 扩展。


---------------------------------------------------------------------------------------------------------------------

u-boot 里  start.S   ldr .word问题
nand write 写地址的问题

--------------------------------------------------------------------------------

b bl跳转指令
从流水线的角度看
跳一次就需要重新  刷新一次  已加载的两条指令就浪费了。

. 在汇编中才用表示当前地址


------------------------------------------------------------------------------------------

第一个是显示级别  num以下  
第二个是默认级别  

0

[root@sowhy arm-arch]# cat /proc/sys/kernel/printk
6       4       1       7
输出6以下级别的0信息。
echo 7 4 1 7> /proc/sys/kernel/printk

[root@sowhy arm-arch]# cat /proc/sys/kernel/printk
7       4       1       7



-------------------------------------------------------------------------------------------


编译 配置 内核

选择  arch 和编译标准

gcc -MM main.c -o xx

boot options -!

tags: record kernel boot args,

ctag.h have tags struct.
"console=ttySAC0"


---------------------------------------------------------------------------

kernel timer:

HZ
内核中 1秒中 100次时钟中断。
1个心跳大约能执行20万行c语言。


中断 设置SA_INTERRUPT  表示此中断不会被打断 也就是其他中断不会被打断。
设置  SA—SAMPLE_RANDOM   并且 irq_handler 要返回 IRQ—HANDLE。

内核的中断号在哪个文件?
在文件: /include/asm-arm/arch-s3c2410/irqs.h

小任务机制    struct tasklet  不能睡眠    保证在同一个CPU中执行。   tasklet_init
运行在中断上下文。 调度是用tasklet_schedule.
提供一种机制来   调用函数  使结构很好。

work_struct   可以睡眠

4096 的倍数   size, off
mmap( to, size,  PROT_READ, MAP_SHARED, fd, off)


vm.area  段  放 mmap对应的vma。
remap_pfn_range(*vma, addr, pfn, size, prot);

pfn 页框号: addr >> 12 (4k 对齐)

高端内存没有 page 这个结构的。 和设备寄存器。
阅读(563) | 评论(0) | 转发(0) |
0

上一篇:arm笔记六之GDB

下一篇:arm笔记八之laili

给主人留下些什么吧!~~