程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 9156|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) {4 k- l0 |. }9 S
#include <linux/init.h>
4 g" P/ c; p8 [5 {( P$ a2 Z( Z  p0 i#include <linux/module.h>
& ~1 |1 i0 Q0 r6 }#include <linux/kernel.h>) }) ^5 M7 ~& r2 v0 x
#include <linux/types.h>
5 Q% x7 t( o' w1 c6 R7 i# @7 Y#include <linux/gpio.h>- z' T0 N2 E) y& ^, y- W/ e
#include <linux/leds.h>  b$ y) \! t1 X! p
#include <linux/platform_device.h>& B! e. h( O) D3 l6 H, g( R0 `
' V3 W$ u& S; K4 `% y4 H" f: Z
#include <asm/mach-types.h>3 {) t/ l6 q$ _/ w9 }/ Z
#include <asm/mach/arch.h>
0 a) K3 r0 P0 S#include <mach/da8xx.h>
4 |; x# Z* t' h/ D2 I/ ^, ^- v& F* w6 s#include <mach/mux.h>
$ e8 d1 O0 P0 Z7 w1 |' e, S9 h3 t6 x" ^, G% ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) P: b7 t& L/ Z% K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ e" {" n9 J+ `2 }5 B  S9 H#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); a, a  K) P1 {  }6 Z  z8 K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ ~, ~1 l; {* q  f% U

: a8 Q  h) t! K2 Z8 ~& Z# Q/* assign the tl som board LED-GPIOs*/
2 n) M$ k% T4 K, p/ g1 \. Tstatic const short da850_evm_tl_user_led_pins[] = {
+ s) l" p8 Y5 J% X/ M        /* These pins are definition at <mach/mux.h> file */
2 A8 A* ]7 e/ _* I( \6 T! O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 e# F4 E9 n0 t3 N+ D        -1/ O5 b! i% C% f( D; J1 r
};) T& }' h/ M6 F! Y1 t8 T* N

3 ?; \1 `3 h" `% i6 b. J4 a# lstatic struct gpio_led da850_evm_tl_leds[] = {
& |) K3 u$ I0 H, U        {
  F6 i# t$ }) O' G6 F8 a                .active_low = 0,/ n0 Y5 O  M/ |$ M
                .gpio = DA850_USER_LED0,+ ]) x" B5 I0 O- S# C: r
                .name = "user_led0",
1 [4 |6 `2 }4 P2 [: V0 s' |5 I                .default_trigger = "default-on",& L, ?, b5 l- D9 _
        },; H8 `/ r3 l- i0 q
        {2 X- F. O4 t) @4 `* r
                .active_low = 0,
$ W% N. ]$ G+ f+ k  Z0 @                .gpio = DA850_USER_LED1,2 \( `# {1 Y, }9 }
                .name = "user_led1"," [9 {7 R( y! m- J
                .default_trigger = "default-on",/ o# P+ T% j+ j/ E/ @% T# z0 T
        },, I2 k: q" k7 d6 \% O; U/ a
        {
( g" N" w" l4 H6 @                .active_low = 0,
, C) z% P+ J9 @8 k! q                .gpio = DA850_USER_LED2,8 m" w; q  u) v% L
                .name = "user_led2",
/ ]9 e6 e0 L: f( C$ Q                .default_trigger = "default-on",
$ z! Y7 f- h# ~        },8 n" y* V2 @3 D/ {  ^/ p' p
        {
4 ]9 m" _6 ~3 V; ~5 L, a% ]                .active_low = 0,6 k9 w5 @/ g+ A- W) a$ j) v8 b
                .gpio = DA850_USER_LED3,
. q* f6 O3 D; b; ]9 f8 m                .name = "user_led3",
7 C1 ~- L) _7 G4 ~3 {5 C2 B9 x                .default_trigger = "default-on",
0 c1 R7 G* g3 I        },
$ H' K9 f' f) |. D. Q' i3 z3 R};9 [5 E  L+ |% j0 ]2 s
8 e8 b7 _8 T, K2 s; Z0 l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- ^# |% h; t( X* o. \- J
        .leds = da850_evm_tl_leds,) e7 U$ R  ?; b- S- c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* }- s6 {0 a( i! ~& |};  n3 h0 G$ E& v2 w
; z1 d( t2 N4 S. O& R) U
static void led_dev_release(struct device *dev)- s. g8 ?" c& J& T7 y
{
  W+ p4 j/ z6 R9 ]( G; k};
: v- d1 g. ]6 r# `  g- _7 e  k' `# {8 f( F( Z0 y& e+ R
static struct platform_device da850_evm_tl_leds_device = {' C. G) m4 D* j* j. p: S
        .name                = "leds-gpio",, O) Y8 I4 f9 x% n( v: T
        .id                = 1,
1 @# L3 r- `6 o* y) |- m' D6 j        .dev = {: V  v. U0 b& U% n5 v% P* @1 B' }
                .platform_data = &da850_evm_tl_leds_pdata,
9 f) F  ~# `( c4 e! B$ x                .release = led_dev_release,
$ Z/ w! R& V/ ~& o        }4 @4 m8 d6 F7 w
};
8 O9 f! C& E5 M
# W8 I" Y8 C- x/ w! l; N7 \% z, l; bstatic int __init led_platform_init(void)
; b# f- F9 h, k0 s! }* P{9 ~3 p( t# E/ P6 s( H- E$ N' b% T
        int ret;& F' C$ e5 j1 s; T# G  v7 Q
#if 02 W; Z' k- L3 L5 r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, f8 X# S2 a! h* ^
        if (ret)
# W7 F( t  r; o% |5 f% X7 z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 q/ s! M! R$ v0 g' q; N6 j( G% R
                                "%d\n", ret);- x2 g$ p1 p! c. p- @" Y  _
#endif# G) v& s% l! ?2 ]+ g
        ret = platform_device_register(&da850_evm_tl_leds_device);2 k( w* @9 U6 R# g  Y1 }
        if (ret)% \& U, }) W/ m4 t
                pr_warning("Could not register som GPIO expander LEDS");9 q! q5 n( d$ X+ |  z1 o+ Y1 n
        else
- e/ I) w0 P; ~0 g; ^                printk(KERN_INFO "LED register sucessful!\n");
$ o$ x  U  Y* J$ }6 w9 W4 B2 N1 S0 p" ?' O* c* x7 W
        return ret;# I7 ?5 {8 S5 ]3 ^& e
}) }: ?+ J1 g% U

3 Y7 D1 `0 M$ J4 R. Rstatic void __exit led_platform_exit(void)
5 z0 i2 {' q4 w6 i) v{
& T6 _* B) o- g& z5 l  ]        platform_device_unregister(&da850_evm_tl_leds_device);- n0 G; D6 e& J. ~" B
5 _8 A" {7 f2 v, F
        printk(KERN_INFO "LED unregister!\n");# B7 X' B% r& r3 o" [& Z+ h
}
/ k% o/ Y3 W! T5 Z% y2 N% G) ^9 g) R2 O7 |- @; ]: B# _
module_init(led_platform_init);* A* r0 N# t, i6 T1 x4 p
module_exit(led_platform_exit);
& U8 \  P. p2 g6 B
3 \( j& g0 T( z0 |MODULE_DESCRIPTION("Led platform driver");5 S- g3 E/ B# Q* @0 _
MODULE_AUTHOR("Tronlong");
: q9 ]/ [  Z' ?# gMODULE_LICENSE("GPL");
: F* o; |9 D" d1 o6 Y/ s! R6 \+ B1 T2 J) `" B7 Z2 c$ U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-2-11 10:59 , Processed in 0.039306 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表