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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, Z) z# F/ X% ^6 h
#include <linux/init.h>
8 R# U- H' g' j! t#include <linux/module.h>* C! O" ?# u% c5 G$ o
#include <linux/kernel.h>
' u  v8 ]5 _6 a$ H, C: I#include <linux/types.h>
. t/ [$ y) t9 L) F' u$ v4 _#include <linux/gpio.h>
* Y( i% R3 R, L0 ~0 ~#include <linux/leds.h>" b/ ~  l9 j1 ~; S# C( h, F
#include <linux/platform_device.h>
, q! _. T& i( t
( V. H8 D. y, @4 Z& U2 n( M$ R" s: {#include <asm/mach-types.h>. I" i* H4 u7 u7 X  L
#include <asm/mach/arch.h>
( ?" F+ T3 f! X' t: w- M  f#include <mach/da8xx.h>/ E' C" E& B8 v; U" d2 ^! j; h
#include <mach/mux.h>! p6 }8 Z- x$ ]  D
* m/ j! X) R$ F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 }; [9 f# Y" J* ], V2 }! W9 ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 l) g$ H9 x- r8 C: Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" L4 D- G2 ^% r0 ]; l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  l# B6 C: v; G- I- q8 L0 W5 E7 _9 p  J- e* x' s- B9 F' t4 T
/* assign the tl som board LED-GPIOs*/+ Z$ D) H# r# X9 F& L2 ^  L3 R. N
static const short da850_evm_tl_user_led_pins[] = {
3 ^% d! C, x! W: I* V/ e        /* These pins are definition at <mach/mux.h> file */$ [" [( ?7 i& R2 W1 N
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, C% E, j1 o7 a" L' d( H* \! ^        -1
* Z7 V" ^- ~; n9 G1 i9 E! H4 }};" P& S$ |, ?# u/ f5 ^$ N6 h
% r& S8 c, s, w2 \& V
static struct gpio_led da850_evm_tl_leds[] = {, Y" R4 k. `1 S6 p! P
        {5 e/ c8 ]: t/ a8 g, W
                .active_low = 0,$ p. B! I9 l( {; `$ v# n
                .gpio = DA850_USER_LED0,
4 [- U  T- P; f% A7 x6 O  t5 n                .name = "user_led0",: ?+ f$ X; b  k7 t6 U# ], S7 X4 [
                .default_trigger = "default-on",$ a9 Q( }4 S. V
        },/ k4 F+ _" Z7 v3 ~
        {
" y- G0 x; t3 x, J                .active_low = 0,
2 |' v( ~( R" i6 _: N                .gpio = DA850_USER_LED1,
' }; E- c5 p8 o: y- x( K3 h6 G                .name = "user_led1",1 f) F# q! Y* K% _( z8 E% y
                .default_trigger = "default-on",
0 I/ o  N& I' E- @: z% I, {        }," c% n- P2 f5 Y3 A1 C
        {! D* P9 h. _7 |9 T
                .active_low = 0,: ]- B' \( H3 j1 ^0 }
                .gpio = DA850_USER_LED2,8 W. A; \( V; ]# F
                .name = "user_led2",
+ @6 H6 r3 O1 v% U9 ?& `3 ^" a1 t7 V                .default_trigger = "default-on",+ C" U. d& |) j7 L) o% R" {6 G
        },
' M/ U; l9 n1 I: P3 ^        {
5 z) l1 a& d, T# H9 J- g                .active_low = 0,3 Y3 i4 H, ~0 E! G/ ]: Z
                .gpio = DA850_USER_LED3,
' t4 f( R+ x: J                .name = "user_led3",
  L: Z4 e; e. g/ S                .default_trigger = "default-on",' I! B$ \0 e5 U
        },( d6 ~$ z$ r$ O' s
};! B. M4 A/ D* X( E+ ^
. D' N& [1 c; q- t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 q8 S. P8 X2 P* T: V8 G        .leds = da850_evm_tl_leds,
3 v1 m& t( l$ A* e        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 F2 l& x" H4 ^& j) ~: e8 Q
};
( P- w) U7 o7 z( D! X: \! i5 \! b. m* [0 C- `; K
static void led_dev_release(struct device *dev)
# h0 |) k# J  S$ r3 l/ n* C{- \7 N2 r9 T. m7 o% n8 E% F2 H2 q' z
};; C( a, B- P* b: ]1 x3 n, M  n
( q& z4 y) V0 D' W" b0 y9 A
static struct platform_device da850_evm_tl_leds_device = {* I/ w8 |8 O$ X  w0 l2 V
        .name                = "leds-gpio",) J) o6 [( ^% D/ H  L
        .id                = 1,3 `. a7 T1 S; W  g/ ^' H1 U/ n4 }8 V
        .dev = {
8 u2 c$ {8 B0 ~6 d* w  ^                .platform_data = &da850_evm_tl_leds_pdata,5 j  Y5 b7 o# i4 Z3 ]4 \
                .release = led_dev_release,2 g# N. i: j" E( j4 M
        }
) e* v: s5 y9 L9 ^};
; P; {: ~8 z8 T% c  S4 F0 k9 L4 D+ z4 {! H
static int __init led_platform_init(void)
8 Y5 A% [. c+ a9 j/ }, e{
+ G7 P- v9 {: y/ [- W& i) w" {        int ret;/ Z  E$ V! \9 O. V* q* L) }' E% r$ w
#if 0. v6 D* b2 M( G2 A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ L' P8 j" @, N( d6 t3 z
        if (ret)* j, x" j5 w) ^. M$ }, ]
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 M( f' @5 b! l/ N3 t% x                                "%d\n", ret);
# w2 S5 d4 E& X2 f2 T1 K#endif
) f0 V1 k% I! g$ h0 y        ret = platform_device_register(&da850_evm_tl_leds_device);
. e' Y$ w; c- `: N" L5 {' }        if (ret)
" J; B: M7 F" c                pr_warning("Could not register som GPIO expander LEDS");
! R. i# U! T4 I1 H) \        else6 i* n% |( A& Z* t- h
                printk(KERN_INFO "LED register sucessful!\n");3 I% ?! t4 i( B7 v5 U3 J

; u0 M. e* H! u        return ret;
, T% n7 V% _$ z/ o}
( b" y* Y" A8 D6 A8 Y! b2 c' `5 a  n/ N/ O/ M( M
static void __exit led_platform_exit(void)
5 e: {9 M( Y2 P) Z+ P4 }1 b{3 F  n( h+ }6 W( O4 N6 b% V! \
        platform_device_unregister(&da850_evm_tl_leds_device);% T6 Q  m  y/ R0 {
  E! S& Q6 t% ~7 N& }* X3 n1 A/ o8 c
        printk(KERN_INFO "LED unregister!\n");* ?* Y: W2 _: t  {# u% `
}
& ?; \( y  b# A& d2 R8 }2 G  a2 w, ]/ x- B. {8 c2 I# A
module_init(led_platform_init);; ?1 C' Y2 G" t" n& F
module_exit(led_platform_exit);
& T0 H  A4 F6 m- j: U4 f, \7 C' u( `
MODULE_DESCRIPTION("Led platform driver");
2 v  h: Q( W& d' N5 x% T. ^' kMODULE_AUTHOR("Tronlong");
8 a2 G  V9 K' g/ zMODULE_LICENSE("GPL");
6 @: O/ V6 |" ]* U; G
. |; |  l2 i# d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-23 02:14 , Processed in 0.046456 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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