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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 S2 t- I  x$ U' {! T4 r/ [: B#include <linux/init.h>
0 z0 r3 c% q& B& f" V4 Q+ ]' E0 u#include <linux/module.h>. V% X1 n1 E3 W
#include <linux/kernel.h>5 \6 E' d9 z; y* T: {  F) T
#include <linux/types.h>8 ?3 Y  E% `/ n- p; `6 E' ~% k
#include <linux/gpio.h>" {* p- W3 P1 p. c
#include <linux/leds.h>( ?' f7 E0 P0 i/ [
#include <linux/platform_device.h>$ B. B* d. }8 w
8 |' [4 _# R  m; T; r
#include <asm/mach-types.h>6 p8 l, b4 p/ u2 [7 T8 [8 R$ Y& L
#include <asm/mach/arch.h>9 T8 N% R0 R. M4 Z  y- s( A- S
#include <mach/da8xx.h>
3 N. k1 \/ W3 `& b9 d4 R6 c#include <mach/mux.h>$ R' W8 v- z  X/ E4 f; \" s
1 Z5 q* V: c% t+ W  ~) C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# Q+ ]" u4 N9 z: O; f* b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ T0 E( I7 k0 U- i6 g) ?7 [
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 P. c0 G5 M5 P- X. I' V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: t: E& n+ D$ S$ @7 N
* u) K! _1 @8 [7 A( t/* assign the tl som board LED-GPIOs*/
! a5 B" |  W4 ]. M& g% Fstatic const short da850_evm_tl_user_led_pins[] = {
" ]' j# q% h5 K0 c7 r        /* These pins are definition at <mach/mux.h> file */" ~% b$ l$ U+ K# \1 I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# I: z/ ~) o. C        -1
8 L' [& f+ _) f. Z( n};
, C) s' W% b, q; T  q8 R" h! J3 E& m' K) R/ V# d  _' D
static struct gpio_led da850_evm_tl_leds[] = {
9 E5 `- f. Z0 R6 P9 p9 j. t        {
9 |! E9 E9 H  U0 |% A                .active_low = 0,- \; O- X- ~) g# X4 O
                .gpio = DA850_USER_LED0,
& A, Q4 s) S4 a, D* f9 Q1 X  T' o                .name = "user_led0",9 r: x3 ~* |4 p$ r, K: G1 `+ o
                .default_trigger = "default-on",
& j9 I* V# q: k( l6 u        },5 A1 b) T0 J+ j: b5 _3 Y
        {% u6 Y& t, G6 T
                .active_low = 0,
3 `1 d0 t! `7 A                .gpio = DA850_USER_LED1,
0 I$ V4 k8 c* [4 p3 c" P                .name = "user_led1",
# T0 `, i$ V7 S                .default_trigger = "default-on",) j) N2 I6 B; r
        },2 q( v: h& ~2 ]4 m! D5 S/ C3 M
        {2 a2 }! N+ M1 [  z
                .active_low = 0,
) K) C, U) \; f* v                .gpio = DA850_USER_LED2,
% k7 E2 V! P' @( l( [; m5 ^                .name = "user_led2",
2 ?0 G  G. K( |5 k. B/ W2 w% {                .default_trigger = "default-on",; \8 h( y8 U& o' ^* z/ Q8 ]) l8 O
        },
5 J3 A# ~7 }3 l5 P' @) }% E        {1 ^  z, u4 T; L( M6 `
                .active_low = 0,) y2 ]+ J9 C+ O; Q" d+ B, }  Q
                .gpio = DA850_USER_LED3,
# ?  K5 U, f  G# E" n  ~) n7 ]: b                .name = "user_led3",
" @( D; _7 E9 o  m6 s1 i- v                .default_trigger = "default-on",
6 n- I% U) q# X! b9 ?- z        },
) [4 k* {3 v6 {% m! b: U2 W. @; I};
$ c5 H$ {! e" I: K) Q
) W2 o- s; H/ |9 |static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; o- K" l- W, j! B0 a# D- ~        .leds = da850_evm_tl_leds,
% D3 y( t" k3 [- h5 w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) C$ J% X3 N' h3 o};" Y; j2 `" ~& `) L3 U. ?
" M1 g! h  z1 O+ @2 e2 h
static void led_dev_release(struct device *dev)' z/ I" J' Y  X% M, a7 N
{
& P$ O9 d1 ~" ]7 Q. N};5 J& E! s8 M# U8 _9 i+ e
  J( \: T/ t/ N: ?/ p+ H- d
static struct platform_device da850_evm_tl_leds_device = {
' C  R' Y# G& b        .name                = "leds-gpio",
' L" h' B( Q; T# `7 u: W        .id                = 1,
" E/ F  y. }, p6 {6 [        .dev = {$ j) M/ O, g9 Y( |* a  Y' u! a+ F" J
                .platform_data = &da850_evm_tl_leds_pdata,
! g/ z$ U/ k$ f; |$ o                .release = led_dev_release,% S. i& D1 `7 @4 v9 P, X5 w+ {! z+ O/ C
        }
$ y' G( {/ ~; `# b! L) i% E9 S};5 i" d" y. D+ @' U. v+ q6 {

9 _, h3 R% n( lstatic int __init led_platform_init(void)
* W% z+ F& k: q3 E1 B! P{
( e. v2 S# A" R        int ret;/ l" K6 t# D. U! ?! V: g; T* j
#if 0
9 P( w- H/ y8 T3 X        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ ~' Q* c; _: a& N0 |5 J4 m3 V: u        if (ret)
) j' |' B2 w4 I4 v. a! c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"* ]1 P; }! X/ a/ I1 a  n0 T
                                "%d\n", ret);6 f6 r+ o1 r  D8 ^6 w* u
#endif, v, _# m" {8 K' K% d
        ret = platform_device_register(&da850_evm_tl_leds_device);
# t' x. E/ U# W  l        if (ret)  U5 W/ y8 b6 B; d+ K
                pr_warning("Could not register som GPIO expander LEDS");5 f2 F7 V  }% R" }( x
        else. H4 y) `  }! d' }6 W8 T& v8 Y0 x3 L5 x
                printk(KERN_INFO "LED register sucessful!\n");0 K# G' ?; X! E4 r; w

3 v% A. b' l4 t  a7 ^& x        return ret;* }9 K, m' V3 W$ U4 o
}. \. R  Q! C7 i3 [

& j$ J& I; W: Y: ?static void __exit led_platform_exit(void)
0 h! }9 a4 c% R8 |{- ]5 P0 J1 C9 r/ c) x
        platform_device_unregister(&da850_evm_tl_leds_device);# n, F& \) U0 U9 `9 M0 A

8 Y% ]+ k- E2 `2 p) \        printk(KERN_INFO "LED unregister!\n");
- ^3 c# v6 n$ Q$ d5 d}
6 a* g, b% ^' ?/ w- i. q5 s: r
7 I  ]. g) O( C* l; W% ]module_init(led_platform_init);- d1 B0 H3 v0 s8 ^% z; `* T
module_exit(led_platform_exit);9 c  [$ w, Q4 B4 v. D9 |" X
* J5 B# g; C1 B" `+ V0 M2 k
MODULE_DESCRIPTION("Led platform driver");7 S1 V5 M' Z1 x2 L) s: b( n& Q7 g' o
MODULE_AUTHOR("Tronlong");& [5 U% J: X! b( D" Y
MODULE_LICENSE("GPL");
- |% L( F1 X6 {7 R8 [* J& A5 T
& J+ @6 ?% {: R2 l5 J0 F& Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-24 18:03 , Processed in 0.040547 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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