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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- Z2 f+ C, k: @! I) [#include <linux/init.h>
$ \2 I9 `* d- \: z% r0 [#include <linux/module.h>; e) m$ z) _) v% N' p7 K! d1 ]
#include <linux/kernel.h>
1 ?- e2 g+ V( I5 {#include <linux/types.h>; A# K; \' O0 g* _8 `' q9 {
#include <linux/gpio.h>1 S5 u+ v+ I9 q1 q6 P+ _# P: d
#include <linux/leds.h>
8 g4 d& T/ J1 u- G* q0 c' l" P#include <linux/platform_device.h>" U0 j3 t+ {$ Q5 H4 z2 z
! w! g& i. f# p) C( U
#include <asm/mach-types.h>
  |6 K) q4 w* |4 n* ~0 d9 w0 X#include <asm/mach/arch.h>. ]! n6 ?: s& L- l$ t
#include <mach/da8xx.h>8 y) U/ a% L  Z
#include <mach/mux.h>- V; d* P1 b- k" s7 W9 A

; S) X* q: [4 D! x1 f- k#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* g/ W5 p7 n; O0 O* z0 o' [#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% W5 r3 |# g* _8 K# i6 F#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 A  W1 X, z7 g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 w' `% K' \# d5 a  q' P

' h( e! U2 h8 u+ h! _/* assign the tl som board LED-GPIOs*/
# c0 V. b: d4 istatic const short da850_evm_tl_user_led_pins[] = {) V5 ^  v5 K# F: u! z: L$ c
        /* These pins are definition at <mach/mux.h> file */
6 Z! y: N9 w7 d; s' H3 ]  u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 U3 s. w; ?2 F) h        -1' U- `; I1 o/ V
};) k5 o8 }  O/ i! b/ R. E0 k

2 }7 j3 e& v% l5 B" k+ \% j5 astatic struct gpio_led da850_evm_tl_leds[] = {
% b$ m; E# G& b6 T        {
) ~5 o- _, b& ~. K' q7 ?4 N                .active_low = 0,& X1 h$ C& `& d0 b/ L
                .gpio = DA850_USER_LED0,
1 p5 ~, N' a" U+ s: E2 U4 E                .name = "user_led0",  L! ^/ W+ l0 @( k) s' E# `
                .default_trigger = "default-on",
5 ^, p% f: b) `3 a        },# x  c8 w3 P* |: _2 `, R! W
        {
4 p% j" R4 \7 a4 u: P" }                .active_low = 0,5 E, z1 o0 h5 B( m  c; r
                .gpio = DA850_USER_LED1,
' Y' i8 K* u# J5 L, z3 g& f                .name = "user_led1",
. g9 P  a2 J+ {0 p: f4 A                .default_trigger = "default-on",; b" j: c# y; y- R+ K) j1 C
        },
* W+ p; C" z- v: p" ~- M        {
: R, Y$ t- B9 R! F7 s                .active_low = 0,; f5 e. O* T9 k- ~2 c+ w, _5 X
                .gpio = DA850_USER_LED2,. |# I- f, M0 j- m) ^9 F7 p, _
                .name = "user_led2",
; h# |5 }: k* T                .default_trigger = "default-on",) x( @& B2 ^9 D/ b, I
        },' K/ ]" _6 M2 s) D
        {
; b. O9 c) {* }4 R                .active_low = 0,& j7 E) E7 K3 d! o
                .gpio = DA850_USER_LED3,  V' Z5 o) {5 w+ ~( B# o
                .name = "user_led3",
2 q( p* X, t: [& W% l" B9 x1 E                .default_trigger = "default-on",
9 X. A  g/ y+ e        },
6 K# L4 v5 m+ T& F% J};
8 E& g/ P5 a# J2 A! K
6 P8 b0 k% l9 f9 f' Mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 E, L9 S# |: Q( Y: u        .leds = da850_evm_tl_leds,
/ \" G) X6 r) K& d9 z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 N2 U* P6 `$ p1 X5 j4 I# `- p};7 X1 X5 T( N6 T' _6 z- Y2 R
: q; i  h5 I; q$ ]- @
static void led_dev_release(struct device *dev)9 P5 h7 b& j' W4 f7 ?
{
5 e4 [2 f/ D& g( {9 y0 Q" h5 W};; q( ~: p# z( b2 `8 \: X
( T9 j/ X' f& t+ q1 X3 w2 g) t
static struct platform_device da850_evm_tl_leds_device = {
) o% L+ P, y2 |- [        .name                = "leds-gpio",
, ]2 b) k- \8 K        .id                = 1,
1 h) ~# |* D. r- [        .dev = {, m8 U; g1 \7 p0 o0 L) u. c
                .platform_data = &da850_evm_tl_leds_pdata,
7 [( Q! a* z/ {' ?) M; l                .release = led_dev_release,
$ y9 y5 @4 {. S, u. O& R2 [        }9 e3 v8 `8 P4 y8 }
};* H) k$ F* M' W

4 V7 A3 e8 `% W) ?) B6 R; ?static int __init led_platform_init(void)- W/ E0 r6 N) _; [4 D- _
{
6 V6 ]0 i8 U4 f6 X& X; x) m- O        int ret;: m+ N5 `' f( }
#if 0
# ?! J2 _) j. i; g) C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ B3 p( M( g& T7 ^5 B
        if (ret)
8 k3 m- M. N1 B% b! ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 Y; Y' g2 ^/ r( e; _
                                "%d\n", ret);
! z: |, q$ L3 l$ i: b0 w% W) `#endif* y3 a& ^5 R' t- o2 J* Q
        ret = platform_device_register(&da850_evm_tl_leds_device);
" ?3 o6 f! i% D; B, M! z' Z        if (ret)
5 W8 M. v% I( R1 J5 D) |                pr_warning("Could not register som GPIO expander LEDS");
& ~3 l5 A2 d" s7 X' a3 Z        else
) N6 r' C8 Q4 m) Y) N. s# B                printk(KERN_INFO "LED register sucessful!\n");
7 O" W+ f1 F" M- Q* A2 q8 G4 d3 E/ _9 o* [
        return ret;$ Y( n+ S3 X! q& D
}
  v5 F# n' ^6 s( }
8 y! `. r* q$ Gstatic void __exit led_platform_exit(void)
( @7 U% G9 T% m& m{2 G( d" a& x" J
        platform_device_unregister(&da850_evm_tl_leds_device);9 F5 i4 E% J$ s
8 {9 E8 v9 Z/ o1 b# m5 l7 C
        printk(KERN_INFO "LED unregister!\n");! e& {5 x; [0 I9 f: ?4 K1 N
}
  C9 r% Z- u$ G7 [+ k; {5 V
) ?! M- k* u% R! gmodule_init(led_platform_init);  m- a; w, X9 H+ N1 ^, Z
module_exit(led_platform_exit);
6 ~( O9 `  T9 n; P
) e. g4 L* D0 w! e9 z% M( {MODULE_DESCRIPTION("Led platform driver");
) J% k% @- _/ j  I/ BMODULE_AUTHOR("Tronlong");# t* s5 b, A7 D. l
MODULE_LICENSE("GPL");
5 y. I# F1 [) w
9 j  e0 }- ?. L9 a6 P- e) V$ G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-12 14:53 , Processed in 0.042913 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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