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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, y0 _! S1 F+ ^; X+ X, U$ j
#include <linux/init.h>7 Q7 l% ^' _+ y, ~  H3 A& Q9 l  Y
#include <linux/module.h>$ P' u8 U: s& t7 T/ `; L" Z: Q
#include <linux/kernel.h>
( Y! u8 w' F6 D, p) E4 n/ l, O#include <linux/types.h>
! K5 L* [) w# g# w, u. _#include <linux/gpio.h>6 j+ C  C. l8 t5 t' p
#include <linux/leds.h>' v3 J4 _. f2 H+ Z
#include <linux/platform_device.h>
- Q  M5 e5 A! z, P7 t' {' z7 V0 H$ T9 C% v& f
#include <asm/mach-types.h>' q* Q6 K3 ]) C% J& ~, Q1 c1 n
#include <asm/mach/arch.h>
* V0 X% g, p4 u1 B( z. P  e#include <mach/da8xx.h>) {9 `4 }6 i6 M" x8 S* ^- a3 y. W
#include <mach/mux.h>
; o4 d+ w: H& }( u
3 {' {1 R+ \- h- U9 t( J0 H#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( y' Z7 o, F/ @5 G#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) ^# k$ k  t, j4 V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( ~+ b" Y& T# C: e  }& b" e( r
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)! S  A9 p' x4 q6 q5 c1 ^% g& c, @8 ~2 x
, t) M) i) N+ `* E9 n- j4 i
/* assign the tl som board LED-GPIOs*/
6 F. z. ]4 a9 ostatic const short da850_evm_tl_user_led_pins[] = {, f5 ~8 ]% A: V. Y0 `% }  M$ u/ T
        /* These pins are definition at <mach/mux.h> file */- e% }1 @3 r9 q7 D8 A5 e& u
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,2 L( r' D  R( N6 n- S1 Z; {$ |) i
        -1. F6 l& `- m% z
};
9 _/ Y$ j: n. R+ s/ [( K/ u1 C
2 E) @7 p( G9 _) F) a0 Ustatic struct gpio_led da850_evm_tl_leds[] = {
/ k" I2 x2 R4 B        {0 m6 B3 a% L/ A( \
                .active_low = 0,
2 c2 ]5 @5 m$ C; H1 f. g# |                .gpio = DA850_USER_LED0,
' N* a2 Y8 b& [                .name = "user_led0"," @) H) H( o) m' t( z
                .default_trigger = "default-on",
7 Y' l8 p, s( k* L        },3 u) u+ E9 e( Z, o
        {
0 I& z2 W3 A  D6 d, Y                .active_low = 0,
$ n. A3 J) Q. Z+ \  Y* n/ r: g                .gpio = DA850_USER_LED1,) s' G9 c; |5 {3 i# I! d$ g) M
                .name = "user_led1",- U! ]4 K3 a  ?+ M7 X9 @" d. Q+ q5 M
                .default_trigger = "default-on",
9 J: y. D. ~" E        },
2 c+ s" d* U5 v3 o0 V2 T1 Y( s% `        {
6 R( E8 l0 I2 r( t4 m4 i7 Z6 ^                .active_low = 0,* Y' K2 Y4 B, O3 X; H
                .gpio = DA850_USER_LED2,$ R  i$ S+ V+ u6 y1 E3 Q
                .name = "user_led2",# W; Z/ k: j0 p' Y! o+ c
                .default_trigger = "default-on",
8 d2 o* k  o8 Q4 J        },2 g5 e4 t, {2 ^' [) H; _
        {$ c7 M2 U/ ?' w  x
                .active_low = 0,
% v( R3 S: l& V# o1 G0 f                .gpio = DA850_USER_LED3,
- G2 g! O2 v' @& z0 u2 d  g* `% W) F                .name = "user_led3",
1 Q2 w5 \0 F) t9 ~& b7 j                .default_trigger = "default-on",
: p: d8 T5 Y- v        },
  }: Y( z; l9 Y: h& J& ]$ K$ L5 m};- ?) o- u0 H6 l3 O; g: F: H. e

. s/ s0 Z8 A6 g( qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* _+ L; _& l( g+ g        .leds = da850_evm_tl_leds,
" t$ g/ ^; a' f* b        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) w' W  ?7 U, r5 w! a7 Y: R};
* C* ~- h# z( j( n7 `, |$ b
) _$ L" k3 K( e; C4 _static void led_dev_release(struct device *dev)& L. X/ M: n1 E) t- J6 b
{3 M9 W6 m. {% a! u2 e4 O
};. B/ W2 j( K3 `* J, z9 }. u8 X6 t

5 i5 X$ B! o4 {- U* V( ]  lstatic struct platform_device da850_evm_tl_leds_device = {% C+ y3 Y  V, H( s) }( {: s
        .name                = "leds-gpio",
+ H8 b& U2 V8 v, t        .id                = 1,; O" c) C  i" j9 J# X
        .dev = {+ u  L1 n3 P* e' v; o8 ~
                .platform_data = &da850_evm_tl_leds_pdata,
2 z$ W# d# C# C0 ]                .release = led_dev_release,
4 ~) q: a7 @3 h        }
( q% G% Z7 N7 L% K) y  S};+ ]3 l0 G4 |; H1 x$ o8 ]# z

- l( E3 _/ e$ Y8 ^( u' M! I# v: Sstatic int __init led_platform_init(void)
6 N) q8 s* |9 q7 X+ E0 j. z7 x{
7 L" f- C# q, F* w        int ret;
" W% N( w) F# R6 ?0 g, [7 {' z#if 0; J6 d# n: Q; q. J& ^& c8 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* J. I' B: @; r. z6 \) I4 m        if (ret)
4 Q1 f5 n1 m  M- n. w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 r3 K9 l2 F" D, L* }                                "%d\n", ret);
1 A. h8 @3 a4 b9 a#endif
2 u( e* y% v  O$ C* y( y/ Z% _        ret = platform_device_register(&da850_evm_tl_leds_device);! n/ i+ B+ D$ U% ]) Q) F" h
        if (ret)+ c/ f( @  h, n# P+ t/ g" g  o* O4 m
                pr_warning("Could not register som GPIO expander LEDS");  {- E5 L* J: [" f
        else( j& n) t8 O" P: ]/ k
                printk(KERN_INFO "LED register sucessful!\n");* q; p9 p! a6 a- r! L. Y

# A4 w% C- R7 I        return ret;; L, x- c% O' B! E0 F
}
+ I5 U3 w9 K$ D6 \" t1 \) e4 o$ a
) t% J. e  x0 U0 a& {( ~4 ?static void __exit led_platform_exit(void)
/ v' X" m1 D1 y! ~{
' P/ I* ^7 s3 z$ }6 I& g        platform_device_unregister(&da850_evm_tl_leds_device);' K$ Z3 Y" e9 G6 c( u3 k$ [

! H3 a4 c, V! a- U. x, q8 M        printk(KERN_INFO "LED unregister!\n");8 y4 {6 F+ ?5 x7 y/ j$ h( I+ Y
}
. F* T, K: M) @' x+ C3 g) _* \/ {+ W: s: C
module_init(led_platform_init);
1 [5 w4 [! F7 H( ~  ~- J2 fmodule_exit(led_platform_exit);; s0 x2 I, i* v9 O
8 _9 w3 b2 V8 a/ M3 }+ H. x
MODULE_DESCRIPTION("Led platform driver");
& T( \) c# W$ c  g( KMODULE_AUTHOR("Tronlong");
  v0 @4 Q8 U3 I3 ?* t; I' }! UMODULE_LICENSE("GPL");+ {) |( m; M5 S6 ^& q( R, {
4 d2 {9 o8 F6 _  f4 W7 q- t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 08:17 , Processed in 0.038637 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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