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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; @' _# G$ M. ?* q' h& W0 h#include <linux/init.h>: D$ H& w' l' p7 Y
#include <linux/module.h>
* o7 H) ], y/ ]+ \4 U#include <linux/kernel.h>9 z/ ~0 M" X2 P' [, V! t
#include <linux/types.h>" H( X# u7 @7 ~4 j
#include <linux/gpio.h>8 _% U/ ]2 L( `* [
#include <linux/leds.h>7 Q( x5 m, }- [( F2 ~
#include <linux/platform_device.h>; g2 Q, L. n, \( Q

8 N& @$ M& Q( p# _* E8 n! N+ w/ B5 J#include <asm/mach-types.h>
( i4 ^) B; N, F#include <asm/mach/arch.h>0 R9 f) K0 `, [, G# R# }
#include <mach/da8xx.h>
& z: {2 u3 Y+ @1 }! p+ ]) z#include <mach/mux.h>
1 ~5 M' ~+ j1 @- o' T0 v8 q' V# F
4 k3 B9 y5 h1 c; a9 x- ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' k& A5 |) h5 ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) _( X- p! J* |2 A3 S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  p- C+ {; e- k: v: t9 @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)3 T( o# H7 o( P. b1 a/ P
6 v! n! `. f% k
/* assign the tl som board LED-GPIOs*/
& e' Y* X, W) D" z. C3 Gstatic const short da850_evm_tl_user_led_pins[] = {
, P7 S  R7 X) e4 L/ K        /* These pins are definition at <mach/mux.h> file */: G2 h1 f( ^; X5 h# w! F, A# `6 }" g) p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( a$ G" E3 K9 r* e! s, ~9 k2 K        -1  `( W  {; E$ u, w' \
};
/ E9 @; N* b4 D. b5 C' i0 k1 m9 x1 M; U) f# {
static struct gpio_led da850_evm_tl_leds[] = {! _6 G4 N+ U, @  `5 M
        {1 N' j! t$ h) r. z8 t2 D
                .active_low = 0,% Z6 Y" C* v# G6 @3 o' [
                .gpio = DA850_USER_LED0,# C) e6 W6 Q% h  [1 L5 Y
                .name = "user_led0",- {! L& q4 B6 H
                .default_trigger = "default-on",8 R4 k& M+ z( L8 f
        },1 F; A# p1 F( S) X9 h& W8 J
        {
" K6 m. N, [3 ^                .active_low = 0,1 G; J0 @: U; c
                .gpio = DA850_USER_LED1,
0 R* i* K' L% ^( V' A% W# w5 z; {: h                .name = "user_led1",
5 a' ]( q# \  k                .default_trigger = "default-on",
* a; Z; {* W& \9 t9 R7 u/ U        },$ E7 ]# s1 a7 l) ^; R* y" @* a4 @
        {
* t1 P9 n5 t& E, |5 L( e* b                .active_low = 0,
9 O5 f0 T7 s+ v' L. I                .gpio = DA850_USER_LED2,' K, j5 \/ D( ^, Q6 I5 B
                .name = "user_led2",# s( Y! C" S7 {- M
                .default_trigger = "default-on",
' [$ r' i; P2 ]; C) W        },
) K0 O. N! p+ k  d3 G/ z. o        {% m3 v4 u0 s8 ]; w7 }8 w
                .active_low = 0,
  q9 E" r" k% z4 j                .gpio = DA850_USER_LED3,7 p/ \1 J1 V) {+ p- y5 v
                .name = "user_led3",
' z2 Q/ ^) B: m% H$ }                .default_trigger = "default-on",9 I) g) U0 ]! l$ I) x' e
        },; X1 }' A5 {2 O& X  U
};0 h% e* G! u  |/ V! r
- M/ k, ?7 G3 D; W; y# l
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 Q( y, Q4 ]  M+ }) q; J
        .leds = da850_evm_tl_leds,! X+ M5 \- T+ Z1 {1 y% j  y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 x+ V! H/ Y- f% A& y2 p& ?% `};
- ~  V7 {! @, D
* z8 D! K' Y; t/ w( y" ]' Ystatic void led_dev_release(struct device *dev)
; H6 W/ ^& @; q  {, V! G( n{
/ J+ _; W1 [2 K};% r2 c/ q% }% J. D

' Y" k: m! `  v2 H& gstatic struct platform_device da850_evm_tl_leds_device = {' o( ~/ ~! W( h0 e' y- q: c3 n
        .name                = "leds-gpio",
& ~, l9 ^) u. z* I( q        .id                = 1,
* p2 S* o" T% H        .dev = {# B- I' C0 n, I
                .platform_data = &da850_evm_tl_leds_pdata,
  l+ T3 z2 i; s                .release = led_dev_release,
  `' s- F: M% y, z        }0 {3 _3 m  u5 [4 K+ `& j% r
};
/ U% O# _: t, O
2 N$ ~0 g& r* p2 D9 z6 Q" P3 Estatic int __init led_platform_init(void); M5 W' f: G) f0 F, W6 w. u
{
) h2 o3 E. T3 r  b7 v        int ret;5 A# b9 x0 ~9 S; q. q4 L* y; q1 b
#if 0! H2 V/ ~7 Z: V4 F) t+ d& Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: r, [3 u! F+ b/ S$ S7 n+ v- j; k7 G        if (ret)
8 V; g5 Z! ~. r! N1 ~2 n9 q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% T2 {) Q3 X1 z7 G" N, z  a0 O                                "%d\n", ret);% e' w# b/ a+ s$ Z6 g) H, X0 V" P
#endif1 g4 u$ j1 e+ X$ w/ O. l% i
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 I/ @/ x6 T0 @        if (ret)5 Y; w% t7 y8 D1 l
                pr_warning("Could not register som GPIO expander LEDS");
5 a3 k& a2 G$ a: @        else
( a' E4 u# ~3 \* d                printk(KERN_INFO "LED register sucessful!\n");! C! `- H! A: ]8 J- r' b6 \
1 m+ R* [7 _/ L* ]* D5 Q7 z' R. o
        return ret;# k5 g: |9 o1 I- I; |4 ?" w
}$ @; P% p3 M7 W9 }- P
% `! D; R' a" H& X/ E
static void __exit led_platform_exit(void)/ k1 f7 J- ?8 A, _
{
, J% I, R5 a, f# J9 y$ Z        platform_device_unregister(&da850_evm_tl_leds_device);
( \" w5 M% Y7 i2 O* I$ T  K6 y5 c
        printk(KERN_INFO "LED unregister!\n");
8 j7 d! \4 c' o/ V}
2 a. ]1 n$ q' S$ l
5 \4 d: g( C+ ?" m/ ?' M4 g) Umodule_init(led_platform_init);
( o" o" k  C7 Zmodule_exit(led_platform_exit);. Q3 z3 e3 m% |: e

8 a: S9 ~) u8 _# p$ ?' t( ~MODULE_DESCRIPTION("Led platform driver");
/ }* f0 W+ u' P/ M) tMODULE_AUTHOR("Tronlong");5 X$ l! Z. v# J
MODULE_LICENSE("GPL");9 Q  U. e$ a' `5 m# r5 P+ F

/ [" s4 l: I6 x- k  H  k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 00:17 , Processed in 0.040001 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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