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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' _( u* H7 B6 y  A#include <linux/init.h>
5 e! c2 C- ?0 j% k#include <linux/module.h>7 z* }& u3 w4 V( H
#include <linux/kernel.h>
) z- [$ a1 F% ^#include <linux/types.h>& t3 M+ |4 u/ j
#include <linux/gpio.h>
4 ^# F* f3 [8 M! n- J* H8 |5 G8 n! ]#include <linux/leds.h>
4 l" s6 d9 G* l#include <linux/platform_device.h>; D# s9 h6 I! C& \( U
( d6 W- g7 q2 E6 k
#include <asm/mach-types.h>7 V7 A9 \+ e1 ~3 {3 M! P
#include <asm/mach/arch.h>+ g% `- ^2 I* I4 Y
#include <mach/da8xx.h># i" i0 Y: T: [7 c( w% w
#include <mach/mux.h>
1 h* T  H1 h9 z6 ]1 z7 C( W! J1 c+ ^+ f% q5 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ h# I, r: g1 Y7 ~: b  c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% N% G- c2 e) i+ w: c3 @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 r" j4 I0 y  C0 v7 k$ J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 q( ^9 r8 }# r+ X  [: m8 N
% C( I' P  B6 f; z; q5 v: l+ Q/* assign the tl som board LED-GPIOs*/% q% x" n; X( T7 `: z- k* l5 s
static const short da850_evm_tl_user_led_pins[] = {
7 @6 L) q. i2 z        /* These pins are definition at <mach/mux.h> file */
7 i0 G( A& ^2 v: O1 F6 y; s% b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; g3 I! }/ B4 U0 l* P5 ~& \* y0 Y0 M9 `        -1( A6 m! i7 W" Q) v' b
};. {" b, n* |: Z( \; Z  E( f
. k* ?* c0 A: D1 L6 Z* v
static struct gpio_led da850_evm_tl_leds[] = {
3 z8 q+ d* u: n7 ^. ]3 i& B: Y        {
, F4 h- x" f5 ^4 C' d, g( k! Z                .active_low = 0,9 r, b/ ^0 {$ n) m  r
                .gpio = DA850_USER_LED0,' S) @1 W5 u; C$ F5 s- o; G
                .name = "user_led0",
5 W+ b! @- J/ L! [                .default_trigger = "default-on",; c& P6 J9 i9 A: K2 c- i' O0 Q
        },
6 k8 Z/ d( C& V0 r5 Q, o0 H        {
, m! h8 O9 H& N* u) E4 c1 f8 c                .active_low = 0,
  w3 @# R) C* D/ V# a% w9 F                .gpio = DA850_USER_LED1,( H! R. x+ Z2 E/ o' p) p8 t
                .name = "user_led1",
; Z. ?( O$ ^# M' P$ b( {6 \                .default_trigger = "default-on",8 G4 v# G- B6 j" O
        },
( g) w5 {7 X  l, @9 j" X3 |2 ^& m        {
' ~0 q( E4 Y* P7 b5 y/ W                .active_low = 0,
: Q1 N! ^5 y( B8 G: b                .gpio = DA850_USER_LED2,/ f- K' P3 Y3 |9 H* P$ B
                .name = "user_led2",
$ N8 s2 W) E/ x: U' j9 P9 w                .default_trigger = "default-on",
( ]3 i% z, u: N* U( h6 d' ?  v        },- x  b! N+ `/ n$ O, {/ X# V" q2 }
        {
( t9 V# b/ U( e1 ^. {2 G                .active_low = 0,7 z3 t* t/ x3 N
                .gpio = DA850_USER_LED3,, s# L8 L5 W0 v3 G7 B/ X
                .name = "user_led3",
4 R! |. a/ m/ f0 X/ F8 i4 q3 W                .default_trigger = "default-on",
) Z8 l) O6 u8 Q' m% ^        },# n* `8 Q3 Q- I+ q. r) e4 F7 a$ |( l7 C) }
};3 ~6 d$ R6 U0 L5 \; p% m
4 [' x" P6 g- ]4 m1 |3 H
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 {) g' r9 k% t" `        .leds = da850_evm_tl_leds,
4 C7 t* J$ p! i) ?* o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( b% t) D" U( f" H1 G9 Z; t" I
};
; {# d# x5 E3 F% V
' n7 }2 I# t1 z+ o- Astatic void led_dev_release(struct device *dev)
* M4 k$ X1 G; x# C8 J- f: u{
4 _, O( H3 V6 A6 @- ~# i( z  y# |};
- q) ^8 S* H, a+ r
0 _. e/ ~5 T5 u7 T; ostatic struct platform_device da850_evm_tl_leds_device = {
! e; e5 @1 }# F2 T: o, _) }) o        .name                = "leds-gpio",
: ?8 {  \3 h; B9 g        .id                = 1,
. `, u+ t  G( b        .dev = {+ m9 N; {" r; o' ^
                .platform_data = &da850_evm_tl_leds_pdata,; E1 [! c* D7 j+ L
                .release = led_dev_release,
% Q% X( o8 ^) c9 j8 p- Y( q        }" F% X$ ?$ _0 A; N7 p8 H
};( I0 W# ?& u% B4 b5 T

7 k! E$ ?+ f" S' z" P6 r8 q* O' V8 Estatic int __init led_platform_init(void)) W/ o% u# L& c* \9 D* H. d
{
3 G7 Z. e3 H  P        int ret;/ |$ ]0 L) B% s* M, O) a
#if 0
% _7 ?7 b+ f0 t* v7 Y2 K" E        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 F/ d: n+ p* o( T/ I" G        if (ret)7 p* w8 z2 X7 s: B. R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' T/ _: e. J- k$ F                                "%d\n", ret);
1 X' P9 [  m$ y. W#endif- a& D* c- G. P
        ret = platform_device_register(&da850_evm_tl_leds_device);* p" D- f$ R, F" x! O( n
        if (ret)" i7 n* E& Y9 b
                pr_warning("Could not register som GPIO expander LEDS");* l; h3 u1 o7 d1 ~7 r8 s3 V1 Q
        else
- L, I7 R6 a8 U. |/ u, W                printk(KERN_INFO "LED register sucessful!\n");; M5 p0 @$ L) F, `6 o3 f8 b

9 L" {- u- d/ T+ x# J+ b# ~        return ret;( q' m& a7 v; B0 \# q0 H: A
}
. ~+ u4 Z/ l8 Y7 w/ _7 e3 I5 S" S1 F, l3 e& R- o& Y
static void __exit led_platform_exit(void). Y% b- v" G: N6 Z) u
{' w9 {* A' \$ E- i6 w
        platform_device_unregister(&da850_evm_tl_leds_device);) d( q' r! l6 I1 J4 M
  B% h9 g5 k- C- B, q/ X, N
        printk(KERN_INFO "LED unregister!\n");, d6 d) ^6 e1 x- Z# T6 _8 ^( d
}
/ V( c1 H( \4 ~# ]
" n8 N: Z: C( g" {" w9 m6 l# w* Q- Emodule_init(led_platform_init);
+ P7 @& b# w4 W& z$ C5 u! ]module_exit(led_platform_exit);$ k; t# a1 E- Z" r6 x2 u

( b& s; D) ?6 L% Y1 i$ R0 |& EMODULE_DESCRIPTION("Led platform driver");
' k: E+ i1 M/ P# L; dMODULE_AUTHOR("Tronlong");+ Z5 P  ?7 X, H; J. D" o3 j2 w
MODULE_LICENSE("GPL");. E8 d( ?0 G9 `& ~! Y: q! n! {

; `8 ^4 p) G' Z3 w/ v/ v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 20:36 , Processed in 0.039141 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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