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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 ^0 k+ \- S/ x' B#include <linux/init.h>9 C6 l$ z, l' o  f3 @* g4 q% p
#include <linux/module.h>
5 \7 T% z  d& c; ~3 Z2 {#include <linux/kernel.h>- x, ]3 ?. h" i' a
#include <linux/types.h>. w: `  u$ Z4 G, z. {7 Y
#include <linux/gpio.h>5 b7 {8 w4 O1 q3 I+ b; B
#include <linux/leds.h>
6 w1 b: G" g3 t  S#include <linux/platform_device.h>( [$ E) F& t: H
! O$ d3 y1 F; T9 |6 ~! \5 h
#include <asm/mach-types.h>3 P3 w. Q* c8 c. a5 p
#include <asm/mach/arch.h>
8 I) s3 E, t5 \7 s/ {9 t2 m#include <mach/da8xx.h>* k( @" u. H: |. H! ~5 P4 Q; p
#include <mach/mux.h>$ }/ |/ M7 b- h* P  X0 t
' L' r. {0 r& L& S' s* N  y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& R' c7 G' f: J, T
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 m- R  X- ^; p6 Z4 g' I: j" W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 F* E) t* V# w, H' G; u9 F#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ P$ j+ Q  p) G* S" M1 e8 L& ]# H$ f/ x9 H- t2 \+ K
/* assign the tl som board LED-GPIOs*/. D7 b: e  R4 V. G
static const short da850_evm_tl_user_led_pins[] = {
  c3 Y0 D, m; _9 Z8 |& i        /* These pins are definition at <mach/mux.h> file */
  ?) u+ J' r8 L( O# n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 o. s. q+ B! e        -17 o8 H8 E. e% {- ?4 U3 k
};, A+ R  s" Y& i& _  S

/ u3 c6 n% {. X# istatic struct gpio_led da850_evm_tl_leds[] = {
$ @1 H7 d4 k( B& @        {
; O* u5 J* U: u5 w4 _, r                .active_low = 0,0 N0 K2 A" e8 X, {9 [+ c1 b( V
                .gpio = DA850_USER_LED0,( g5 x$ @! `8 f: M$ l
                .name = "user_led0",
6 }! S6 T" m% M( u5 e& ~% T                .default_trigger = "default-on",
/ j* X9 ^) n( G- T0 ~        }," d2 s' R* a  @4 ~$ u$ b+ T( d
        {
5 U: \8 x/ l  d                .active_low = 0,. c+ m  D5 o: c* ]4 X
                .gpio = DA850_USER_LED1,
- s4 k" b5 _7 j. c9 t1 z2 C( M5 M                .name = "user_led1",3 i  k9 d. W, J! v2 V+ n  c3 A
                .default_trigger = "default-on",
# b3 _/ Q' h( f' j4 y( f9 o6 ?        },8 O6 i$ R* _: _( u
        {
) W0 C- ?8 `4 x2 a                .active_low = 0,/ F* d+ e6 K) t
                .gpio = DA850_USER_LED2,8 I) N: m  c3 s6 y8 Q) S8 M
                .name = "user_led2",& ?- J' {, A, E
                .default_trigger = "default-on",, r( R! R8 z- \; ]
        },
* g# `, G# q& L3 b# X/ f8 j        {
, O/ m1 }. A- y/ f; `5 G                .active_low = 0,
7 R6 y9 t7 S, z4 t7 W" A                .gpio = DA850_USER_LED3,1 H0 `5 j2 `2 R& R' G1 c% ?9 l
                .name = "user_led3",0 B% b  R) C. O) d% F5 c
                .default_trigger = "default-on",' r. S# R1 d8 N
        },6 }1 j+ ~5 u  p; |8 n4 L
};
2 W5 t. e6 a# |) A  k3 z5 F- Z) ^4 W3 X5 O
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& e% u1 j, ]" Z9 H6 P6 `  _0 f        .leds = da850_evm_tl_leds,
8 B- x* j0 C: M        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 |  I: s. X% V
};  \1 a6 m# v% k( \: |

7 |! X2 l! w- r# ?; ostatic void led_dev_release(struct device *dev)4 q3 `, I2 ~- A! y7 Z$ t- f
{
( E. m0 @6 {2 t! w/ }# G};
$ p) h4 D& @- ~- o
  N9 [. |/ \' ~static struct platform_device da850_evm_tl_leds_device = {, C! O0 ~8 u  N% g* _! u
        .name                = "leds-gpio",
$ D8 E8 K3 ?1 m8 v/ @        .id                = 1,
" V. e. ^* u+ T        .dev = {
# v$ l4 N" c+ A                .platform_data = &da850_evm_tl_leds_pdata,
# t1 G1 ~  R; v) c                .release = led_dev_release,
( [- i3 ?7 z5 T7 H        }
% u9 V, H: ?5 U};$ z& \3 c- {; q5 d% G: [+ G
. U( A' n+ W/ H  Y
static int __init led_platform_init(void)
9 ]" K: M) y( m3 g  ^* T- O. @{
5 y4 _) Y1 C( }, o        int ret;
9 _7 l" N- a( N# X$ T+ G#if 0
$ |0 Q4 G, q! Y5 x* k9 ?: r        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 k9 _: X# q$ x. W) I# c        if (ret)
; \* n- f+ w3 P% b% s8 _) r2 h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
8 {; i# A7 \3 F1 O+ g                                "%d\n", ret);6 }, q" A8 T, r) E$ h0 e* K; _; V
#endif
" b. _6 B  k* R( i2 I: P& U        ret = platform_device_register(&da850_evm_tl_leds_device);
7 c/ n+ M1 i& L! ]5 a& p        if (ret), L* v# q$ A+ h9 `( L
                pr_warning("Could not register som GPIO expander LEDS");# Y* y  ?6 P, B4 C- F1 s
        else) \. }$ c2 @  N. |+ d& n
                printk(KERN_INFO "LED register sucessful!\n");
6 g$ U9 j) A. y+ [, N+ A4 a3 V2 Z- P6 @( Z/ m
        return ret;
6 `8 g3 r9 [" O! f( Q* v% N}
2 ?' Z2 v0 a/ U; T7 `8 J7 e4 O; u
2 w* A) z/ Q' G& X: `9 |! Wstatic void __exit led_platform_exit(void)
5 G* X4 E1 T- Q- J. o* D' d: m{0 j/ N: @+ h: W( ?' X( x' c$ G% R
        platform_device_unregister(&da850_evm_tl_leds_device);
# A; f1 H/ ~2 `6 [% D, B0 m
  D* P0 r5 A: @( {7 R1 O        printk(KERN_INFO "LED unregister!\n");
, W! y/ C  M* D: }}
' Y, j3 ]! Y+ `+ y1 R# P/ [  N# S0 B, l4 [# w5 A
module_init(led_platform_init);* V  V5 W7 f/ [# y! l
module_exit(led_platform_exit);
! t) j" i4 b, J" {
' e( ?7 p# W% t1 q' q7 ?7 ]- aMODULE_DESCRIPTION("Led platform driver");
  l2 f7 X& i( G7 Q9 m6 T/ FMODULE_AUTHOR("Tronlong");
6 \9 A5 r7 L- Z; U, MMODULE_LICENSE("GPL");
4 F5 c0 G9 h3 y0 ~% n3 z8 f" L. F# M( F: m0 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-10 10:30 , Processed in 0.036775 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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