程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# X; b6 \( Q5 `; Z#include <linux/init.h>
% ^1 W: y1 e& g2 `0 a! r* f#include <linux/module.h>4 r  f+ q4 Q/ z% C7 E* y
#include <linux/kernel.h>* r+ O) A, b! l2 ~' ]% M
#include <linux/types.h>
+ M5 q% V0 M1 b) {1 Z* p#include <linux/gpio.h>/ a9 w  j: l' I, G' r3 f& F
#include <linux/leds.h>. I& \$ h" _, v0 @' Q
#include <linux/platform_device.h>2 ]3 K3 e$ `5 n" B5 t' F

. ]) ^5 s9 g+ D#include <asm/mach-types.h>* o  f( h& E) s$ t/ L
#include <asm/mach/arch.h>
. Q7 y  ]) u0 U2 g2 t#include <mach/da8xx.h>3 o& o! |+ F8 P6 }  M8 q
#include <mach/mux.h>
5 l* {+ z  L, Y: U; m: m8 V, _- B
: y. v3 N' E( y. U' ]! H# }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 t8 k4 C/ J  j* c9 o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" _$ e  p0 K5 }4 N! @# J) \6 j
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 _7 o# ?/ P- H7 a7 ]* u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% q9 t8 d: e0 o8 F( F
# ?( W5 l5 m0 I9 |; p
/* assign the tl som board LED-GPIOs*/
/ }. h' \* ?0 y! [' K7 A1 s+ jstatic const short da850_evm_tl_user_led_pins[] = {7 [6 l. I4 _* l  ~7 ~# h
        /* These pins are definition at <mach/mux.h> file */3 @4 E6 r2 ~1 b) i3 _3 k( d2 M0 s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 J2 x+ y, n& C6 x, M4 ~3 n1 j% S
        -16 a& y5 X. g+ @6 e* w' K% W
};9 A6 j: k# ]8 l2 V  J

/ n( w, n7 ~% ^1 a0 a  zstatic struct gpio_led da850_evm_tl_leds[] = {! g5 v% w' k1 K2 w5 l' X4 o
        {
2 s$ F  J9 t5 Y; J2 q2 O                .active_low = 0,+ W0 d, z1 U* u+ X. D1 D
                .gpio = DA850_USER_LED0,
, B8 X$ W0 }# E. v3 G2 h                .name = "user_led0",- i! @; p9 Z/ j7 u9 K& Y
                .default_trigger = "default-on",
0 b  F6 o) ~: X6 E        },& {) O1 j3 N( F8 B* v
        {
$ v* J; [! N. F7 \                .active_low = 0,
& J1 L3 ]1 B* M$ E% _+ x( G                .gpio = DA850_USER_LED1,
/ |3 N7 p; B! c; T1 @                .name = "user_led1",  x7 J3 A* K2 m8 ~/ q( J
                .default_trigger = "default-on",4 O$ K# I; P$ ^& ~! U  p3 o% ^
        },
( L: x7 {- M1 N1 G        {$ d; k3 r; |$ L
                .active_low = 0,
" W8 X; a. Z0 I- E/ @6 O                .gpio = DA850_USER_LED2,) l7 o) K- T9 `/ A3 h
                .name = "user_led2",
' ?6 C, }) |3 X  l% f                .default_trigger = "default-on",
5 @' ]5 w; g( ~' ?        },) ~3 {7 l9 [! q3 v* D* e
        {
# W' G7 U# c$ a. w( H8 O# H                .active_low = 0,
/ N' F0 _  m6 D9 h                .gpio = DA850_USER_LED3,
: U% |' `- P( x                .name = "user_led3",
" L3 p# n3 |1 @: ^8 p                .default_trigger = "default-on",
# q' r2 t) a4 L. G$ v$ C# z4 A        },
4 h. }' P, n9 a. F};
0 {& p+ J" [) I
, }9 G$ A: f. `  s( Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- G8 [$ x8 f5 u1 G, g
        .leds = da850_evm_tl_leds,0 m) h, i" P) d+ m. H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' }$ ]4 z5 }. H' c2 Z
};
; W( r# Q* O3 F) {3 v# k
4 ?5 b: p0 l$ k& t8 Nstatic void led_dev_release(struct device *dev)% h2 @6 }4 {, V9 c4 X
{3 v) l9 g; R" G( d: `1 K
};
. V1 @6 r( T7 x% v9 B* O2 G- D( s/ e$ B. }4 |1 q- I2 o) ^
static struct platform_device da850_evm_tl_leds_device = {
9 [$ X0 I( {4 [, R5 L+ a        .name                = "leds-gpio",
# j$ v' t- E) c" n- v  x2 B! a        .id                = 1,
; j* |8 Z+ n6 W        .dev = {
0 M* n* K* z( Z. x" h& e4 U+ x4 {                .platform_data = &da850_evm_tl_leds_pdata,
: Y8 P# f, ~4 O- s+ P                .release = led_dev_release,% c) ?) W8 C7 e
        }9 H4 o) q- J# m1 E+ _8 I& a
};
- e5 q4 }1 l$ g1 N  y( W0 l7 f6 _. k9 m. S
static int __init led_platform_init(void)
+ k! |  o, t0 K/ j# A2 a# P{# w( L+ V& I; `4 C: h
        int ret;
5 O7 L- W  C; D% @: p- H0 g#if 08 G, Z# h/ [( s$ k: X/ z  I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( M$ @! k7 x& c' B& m
        if (ret)& y# F. z/ S* \! z2 u2 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% V. F2 u' \" y7 ]5 M& i* O$ `                                "%d\n", ret);
! z, l2 X/ G9 g% }5 c. d#endif+ M3 N; d- m( R) k
        ret = platform_device_register(&da850_evm_tl_leds_device);4 K& K- K: R0 x; j
        if (ret)
6 A/ @( y, E0 |( {/ y                pr_warning("Could not register som GPIO expander LEDS");
, |) N( R3 R  [7 |! t4 j  _1 ]( f        else
! r/ y+ W5 I" C3 S* d                printk(KERN_INFO "LED register sucessful!\n");
7 k9 F' W( z1 {5 U& T7 }9 p+ ?8 A. n
        return ret;, n& V+ S3 c9 @/ T+ _7 B; }8 v$ P
}
8 `: _4 J# b5 U" _/ Z+ P* w' `9 G+ K1 w8 ]
static void __exit led_platform_exit(void), Y2 N3 J( _& ~/ C  m
{* l- t& O0 |/ W! O
        platform_device_unregister(&da850_evm_tl_leds_device);! a, t  H7 R6 i) a1 k
+ V# j7 B! A2 }3 M' y% h" y
        printk(KERN_INFO "LED unregister!\n");
' Z1 _$ P5 [4 o# `9 Q3 j}
8 ^; |- T) c6 v5 [5 w& I/ h0 y9 O/ A. E( z
module_init(led_platform_init);" u8 G1 u. Q/ w: Z" N+ L1 _
module_exit(led_platform_exit);, [6 Y9 |* B+ J7 J; W

0 u, O& j2 c8 g! v4 DMODULE_DESCRIPTION("Led platform driver");
$ M3 A' B$ J6 P9 Z/ z- cMODULE_AUTHOR("Tronlong");
" J$ \" e  ]6 m1 KMODULE_LICENSE("GPL");8 o) j, c; p! z  ^' {+ P/ |
( C- ]9 H+ B2 W- i5 D; Y& g' w3 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-27 20:14 , Processed in 0.036075 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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