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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 l/ a- k# j3 ?- H. W#include <linux/init.h>$ M5 ]% ]5 n) Z2 b$ ?9 y
#include <linux/module.h>) y7 u: ~) t' w2 j' @3 z( @
#include <linux/kernel.h>$ r$ K; t$ n7 e
#include <linux/types.h>
& X" o+ s& |9 P  `4 S#include <linux/gpio.h>
, t9 d- J, q+ r: J/ e' _6 C#include <linux/leds.h>7 t. W% C" w( v" [9 L) ~5 r5 k" j
#include <linux/platform_device.h>* J& b% _* F$ l+ |. N& w* {

6 b: k3 G5 }5 m- \; L+ [- J% s& Y5 X#include <asm/mach-types.h>8 N& S( k5 }+ P! [/ m
#include <asm/mach/arch.h>
: b) O& S5 S7 m0 S: p#include <mach/da8xx.h>
2 G; ]) [* \: ^#include <mach/mux.h>
1 d9 ^8 f, w! C9 Y, h, Q4 c; l8 D' ^& t1 j* o& `9 h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- S( h. C0 N4 n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" E. v, }- [& F) Q9 U: Z7 Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
: \* z7 ]  t' L5 s( p" C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 H0 X" v7 W. S' w/ g7 W; ]  H- n6 `- b1 M% E4 ]" `& S
/* assign the tl som board LED-GPIOs*/9 ?- C: r1 l' O" a6 r
static const short da850_evm_tl_user_led_pins[] = {
9 }7 Q1 z7 H3 ^1 s. v8 e  w5 [        /* These pins are definition at <mach/mux.h> file */
6 K+ I% B$ @& E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 p8 h$ @0 S/ L7 j& n        -1
. m+ W, X; f( A; G0 _' L: Y& Y};
; K9 T/ x- d8 q' Z/ L
1 E; G4 s8 x) M4 R- I5 Lstatic struct gpio_led da850_evm_tl_leds[] = {- W: u! A: D$ @0 O0 T
        {
+ c5 G8 ?9 V3 v8 b1 X                .active_low = 0,9 T) S$ p' y0 {9 _9 K
                .gpio = DA850_USER_LED0,: R' v9 \4 w( m+ a/ ?% c5 ?
                .name = "user_led0",
0 u7 f# t* N/ o7 f/ Z% a  V+ A                .default_trigger = "default-on",
& Q# a4 Q; Q0 J+ m- y, [% C6 l& |        },5 M! D$ I( u+ c" m
        {
* U+ t+ o- ?& b: x% Q2 w) b+ U                .active_low = 0,  N8 R( ^0 f  Y2 `$ R) j+ W- T
                .gpio = DA850_USER_LED1,
( g  `2 x) i0 j9 R0 F                .name = "user_led1",
/ F# O; q8 z, N% c                .default_trigger = "default-on",# w. c8 T# S" Q" k- R: P# i
        },
" y2 R2 k2 T6 R2 X" U' n        {
9 m9 X! `2 M1 y3 P                .active_low = 0,
) D- u1 T# S0 y( m! M- z                .gpio = DA850_USER_LED2,
0 I' m& I0 ?9 g- F/ F                .name = "user_led2",
( a, o: P: L( e% c+ [  o                .default_trigger = "default-on",+ o2 j, T' E* a" O0 j
        },# S8 c# X* W2 w; g7 U
        {
9 {4 v# }: Z/ y) J                .active_low = 0,0 l' A! U8 W# E+ x. Q
                .gpio = DA850_USER_LED3,0 _# i/ p* z9 D, [* V" \
                .name = "user_led3",
" i+ p* p# q4 O; J                .default_trigger = "default-on",4 `( C. l, }" i# X! [6 I
        },; K8 n) Z$ L2 O" n3 S6 m7 \
};/ J/ Y# v1 H: A( \# z+ S: u

" [% r) ?' c/ G( W' U4 E0 Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& E1 g& G; o- r" d0 C        .leds = da850_evm_tl_leds,
* E9 N; R1 X7 U. c) ]! z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) |/ y! v; Z& K! e- E! f2 `
};
( a+ O& _+ R/ q  \' {- }% D6 F+ G
' j; b. y4 F4 p# Hstatic void led_dev_release(struct device *dev). b* w4 [6 g3 r4 i, S6 y* e
{
9 i/ X6 I1 i6 y3 Y" Z};
8 W& j. Z0 o$ f9 s9 s% Y" }2 M. q' A
$ k. w8 D4 c; q, M4 m; Ystatic struct platform_device da850_evm_tl_leds_device = {3 k  [- L3 A2 `$ f
        .name                = "leds-gpio",
* |5 c2 s2 u; j5 Z- p% V; O5 r: j        .id                = 1,1 e( A5 U; k1 z) d: j4 |* j
        .dev = {. B0 f+ p$ D$ ^3 Y2 T& G1 \
                .platform_data = &da850_evm_tl_leds_pdata,
  d" A! {) C( F8 V. u                .release = led_dev_release,
/ b( E7 ^' ]! _9 o        }$ l9 R5 k$ q) m1 `- L7 C
};
% d  M. D  M/ F2 f) a( J/ f0 ]  s* W9 a
static int __init led_platform_init(void)
7 o+ U  X6 u+ a9 T/ B3 B{8 S  g" W2 g! o
        int ret;2 t0 T8 E& c4 y$ a
#if 0
1 Y0 ]/ A4 b' l/ E* C' B; j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; B7 k- _/ m' h) k4 W% w6 l        if (ret)
9 s7 X( b+ H. a3 ^                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"  g6 Y  }  q. m  v! k' g; A
                                "%d\n", ret);, j$ d, x8 i3 `. c
#endif
! L0 e+ H1 C/ r        ret = platform_device_register(&da850_evm_tl_leds_device);- P! w% W% e* Q
        if (ret)
9 a! |" t* d9 Y/ k) Q( I                pr_warning("Could not register som GPIO expander LEDS");, _+ A4 _8 J3 P5 b9 ^4 p
        else
" o3 Z- `, }$ u$ \' _' `8 |# j# i4 k                printk(KERN_INFO "LED register sucessful!\n");
! u! b- R% z& O3 o5 i7 q
1 w+ d# g" U* t        return ret;+ }2 s) f. y5 {* ?4 t- _& v5 v
}; R! m- |3 L8 E4 H- r; `6 Y1 X9 m; ^

/ a' [+ `8 M& \- W4 i( c- Lstatic void __exit led_platform_exit(void). X5 [5 y# a. w2 ]  k
{
2 b# V; _" E, P& N$ V- d) M        platform_device_unregister(&da850_evm_tl_leds_device);
. y+ ], B! [4 q  P5 X& ?
. ?8 a& Q3 Z* w. E/ G2 U% U& T! q        printk(KERN_INFO "LED unregister!\n");
1 O  Y) k1 |3 B. p}
' D7 x9 C: F, f) P' r
+ s$ G0 a0 |- u7 j2 @7 Z% omodule_init(led_platform_init);
- J8 o9 o6 N1 Vmodule_exit(led_platform_exit);
# B" [+ N3 u5 V
: Q$ Z4 J2 l0 O3 SMODULE_DESCRIPTION("Led platform driver");
3 M' N* ?7 L" H) ?7 ]7 \: E. r0 N3 iMODULE_AUTHOR("Tronlong");6 ^1 g& |9 X! A& B9 U" _7 d! l
MODULE_LICENSE("GPL");
. E% Q" V9 a; t5 x/ J& o: L" [) b1 w# \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 09:53 , Processed in 0.040784 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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